2016-06-24 13 views
0

Ich habe Volltext-Indexierung/Such-Setup und ich versuche, eine Zeile ziehen, wo die 'LotteryChoices' Spalte einen der Abfrageparameter enthält. Ich bekomme immer einen Fehler "falsche Syntax in der Nähe von 'ODER'". Ich habe eine Reihe ähnlicher Threads gelesen, aber sie scheinen widersprüchliche Antworten auf die richtige Syntax für eine WHERE CONTAINS-Abfrage zu haben. Unten ist die Abfrage. Vielen Dank im Voraus für jede Hilfe, mein SQL Fu ist schwach.SQL-Syntaxfehler in WHERE CONTAIN Abfrage

SELECT * FROM Lotto WHERE CONTAINS (LotteryChoices, 'Markley' OR 'Lindley' OR 'Tagert' OR 'Green' OR 'Goodwin' OR 'Wilson' OR 'Greene' OR 'Barnard' OR 'Opa' OR 'Taylor' 
+0

Ich bin überrascht, dass es (die „falsche Syntax nahe“ -Meldung), dass ich jeden Hinweis finden kann nicht weit bekommt, dass MySQL eine hat enthält Funktion. – Uueerdo

Antwort

2

Da Sie beziehen sich auf die Volltextindizierung und die CONTAINS Funktion in T-SQL/SQL Server verwendet wird, vermute ich Sie vielleicht nicht MySQL verwenden, sondern MS SQL und wenn ja, sollte die Abfrage sein:

Das ist, mit der OR als Teil der contains_search_condition wie der documentation.

(Wenn Sie tatsächlich mit MySQL werde ich meine Antwort entfernen)

+1

Ich benutze MS SQL, leider habe ich vergessen zu erwähnen, da es die Syntax beeinflusst. Guter Fang und danke, das hat wie ein Zauber funktioniert. – HiCntry

0

Verwendung in

SELECT * 
FROM Lotto 
WHERE LotteryChoices IN('Markley','Lindley','Tagert','Green','Goodwin','Wilson','Greene','Barnard','Opa','Taylor') 
+0

Eigentlich ist LotteryChoices mehr als nur der Name? – Kramb

1

Verwenden Sie das LIKE Stichwort, zusammen mit Prozentzeichen in der Zeichenkette.

select * from Lotto where (LotteryChoices like '%Markley%') or (LotteryChoiceslike '%Lindley%') and so on 

seine eine einfache Möglichkeit, LIKE statt CONTAINS zu verwenden.

Verwandte Themen