3 Stimmen

Wie sucht man nach einem & (Ampersand) in der Funktion tsql contains?

Ich habe eine Tabelle T mit einer Spalte C, die Text mit dem Zeichen & enthält, aber wenn ich die folgende Abfrage ausführe, gibt sie nichts zurück, obwohl ich 10 Zeilen habe.

SELECT * FROM T WHERE Contains(C, 'a&b')

3voto

Chris Shaffer Punkte 31499

Verwenden Sie doppelte Anführungszeichen, um den Begriff zu einem Suchbegriff zu machen:

SELECT *
FROM T
WHERE CONTAINS(C, '"a&b"')

Andernfalls suchen Sie nach etwas, das a UND b enthält.

2voto

JohnIdol Punkte 46869

Verwenden Sie stattdessen like:

SELECT * FROM T WHERE C like '%&%'

wenn Sie nur nach & suchen

o

SELECT * FROM T WHERE C like '%a&b%'

wenn Sie nach a&b suchen müssen

1voto

Quintin Robinson Punkte 78652

Könnten Sie ein LIKE anstelle von contains verwenden?

SELECT * FROM T WHERE C LIKE '%a&b%'

1voto

Patrick McElhaney Punkte 55251

Ich erstelle eine Kopie der Spalte, in der & und andere nicht alphanumerische Zeichen durch _ ersetzt werden. Dann kann ich dies tun.

SELECT * FROM T WHERE Contains(C_searchable, 'a_b')

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X