我正在上一门基础SQL类(class),目前正在学习基础知识,并且在过滤方面遇到了问题:
任务:列出TableName
中的所有行,其中columnName
字段内容不包含以下任何单词:'stack'或'overflow'或'exampleword'。
SELECT columnName
FROM TableName
WHERE columnName NOT LIKE '%stack%'
->我只能使用一个值使它正常工作,但是当我尝试添加更多单词作为值时,它不再起作用->
SELECT columnName
FROM TableName
WHERE columnName NOT LIKE '%stack%' OR columnName NOT LIKE '%overflow%'
包含多个搜索词的正确语法是什么?
显然,我也不应该在这里使用CONTAINS,否则它太容易了。
最佳答案
您需要AND
,而不是OR
:
SELECT columnName
FROM TableName
WHERE columnName NOT LIKE '%stack%' AND columnName NOT LIKE '%overflow%'
您可以根据需要使用更多条件来扩展
WHERE
子句。旁注:如果您预先知道单词在字符串中的出现顺序,您还可以执行以下操作:
SELECT columnName
FROM TableName
WHERE columnName NOT LIKE '%stack%overflow%'
关于sql - 在SQL中将LIKE与多个搜索词一起使用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60309335/