我有全文索引/搜索设置,我试图拉出'LotteryChoices'列包含任何查询参数的任何行。我不断收到“OR'附近的语法错误”错误。我已经阅读了一些类似的线程,但他们似乎在WHERE CONTAINS查询的正确语法上有相互矛盾的答案。以下是查询。在此先感谢您的帮助,我的SQL Fu很弱。
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 :(得分:2)
由于您指的是全文索引并且在T-SQL / SQL Server中使用了CONTAINS
函数,我猜您可能不使用MySQL而是使用MS SQL,如果是这样,查询应该是:
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'
也就是说,将OR
作为documentation的contains_search_condition的一部分。
(如果您确实在使用MySQL,我会删除我的答案)
答案 1 :(得分:1)
使用LIKE
关键字以及字符串中的百分号。
select * from Lotto where (LotteryChoices like '%Markley%') or (LotteryChoiceslike '%Lindley%') and so on
使用LIKE
代替CONTAINS
的简便方法。
答案 2 :(得分:0)
使用
SELECT *
FROM Lotto
WHERE LotteryChoices IN('Markley','Lindley','Tagert','Green','Goodwin','Wilson','Greene','Barnard','Opa','Taylor')