在 SQL 中使用 LIKE 和多个搜索词

Using LIKE in SQL with multiple search terms

我正在学习基础 SQL 课程,目前正在学习基础知识,但遇到过滤问题:

任务:列出 TableNamecolumnName 字段内容不包含以下任何单词的所有行:'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%'