WHERE CONTAIN查询中的SQL语法错误

时间:2016-06-24 20:45:12

标签: asp.net sql-server

我有全文索引/搜索设置,我试图拉出'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'

3 个答案:

答案 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')