繁体   English   中英

在具有多个搜索词的 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%'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM