2016-06-24 3 views
0

フルテキストインデックス作成/検索設定があり、「LotteryChoices」列にクエリパラメータが含まれている行をすべて取得しようとしています。私は "OR 'の近くで誤った構文を取得し続けている"エラー。私は束のようなスレッドを読んだが、WHERE CONTAINSクエリの正しい構文について、矛盾する答えがあるようだ。以下はクエリです。事前に任意のヘルプに感謝、私のSQL Fuは弱いです。WHERE CONTAINクエリのSQL構文エラー

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

私はそれ(「近くに無効な構文」メッセージは)MySQLが持っていることをこれまでのところ、私はすべての参照を見つけることができないことを取得驚いています機能を含んでいます。 – Uueerdo

答えて

2

あなたは、フルテキストインデックスを参照しているとCONTAINS機能は、私はあなたがMySQLのではなく、MS SQLを使用していない可能性がありますので、クエリが可能かどうかを推測しているT-SQL/SQL Serverで使用されているので:

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' 

つまり、documentationのようにcontains_search_conditionの一部としてORが含まれています。

(あなたが実際にMySQLを使用している場合、私は私の答えを削除します)

+1

私はMS SQLを使用しています。申し訳ありませんが、構文に影響するので、忘れてしまいました。良いキャッチとありがとう、それは魅力のように働いた。 – HiCntry

0

使用すると、文字列内のパーセント記号と一緒に、LIKEキーワードを使用します。

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

その代わりCONTAINSLIKEを使用する簡単な方法。

+0

実際、LotteryChoicesは名前だけではありませんか? – Kramb

1

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'