You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL查询问题:调试匹配word1/word2且包含word3的大文本列语句

解决SQL查询逻辑不符的问题

嘿,我懂你现在的困扰!你的SQL语句没返回预期结果,核心问题出在SQL运算符的优先级上——AND的优先级比OR高,所以你的原语句实际执行的逻辑是:

(包含"word1") OR (包含"word2" AND 包含"word3")

这和你想要的「(包含word1或word2)并且同时包含word3」完全不是一回事,自然结果不符合预期啦。

正确的写法

只需要把OR的两个条件用括号括起来,强制让OR的逻辑先执行,再和AND的条件结合就行:

SELECT * FROM Table1 
WHERE (column LIKE "%word1%" OR column LIKE "%word2%") 
AND column LIKE "%word3%";

可选简化写法(根据数据库支持)

如果你的数据库支持正则表达式,还可以用更简洁的方式来写OR的部分,比如MySQL里可以这样:

SELECT * FROM Table1 
WHERE column REGEXP 'word1|word2' 
AND column LIKE "%word3%";

不过要注意不同数据库的正则语法有差异,比如PostgreSQL用~,SQL Server可以用PATINDEX,根据你用的数据库调整就行。

内容的提问来源于stack exchange,提问作者user3296793

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 08:18:10