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

如何同时使用LIKE与NOT LIKE正确筛选SQL查询结果

SQL筛选包含"Apple"但排除特定短语的问题

你的现有SQL语句会直接排除所有包含"Apple juice"或"Apple seed"的记录,这就是第四条数据被过滤掉的原因——它包含"Apple juice",但同时也存在独立的"Apple",符合你的预期需求却被错误排除。

要实现「包含Apple,且即使存在Apple juice/Apple seed,只要还有独立的Apple就保留」的逻辑,可以通过替换特定短语后检查剩余内容是否仍包含Apple的方式来实现:

SELECT content
FROM description
WHERE LOWER(content) LIKE '%apple%'
  AND LOWER(REPLACE(REPLACE(LOWER(content), 'apple juice', ''), 'apple seed', '')) LIKE '%apple%';

逻辑说明

  1. 第一个条件LOWER(content) LIKE '%apple%'确保记录至少包含一次Apple(大小写不敏感)。
  2. 内层的REPLACE会先把文本中的"apple juice"和"apple seed"(统一转小写后)替换为空字符串。
  3. 最后检查替换后的文本是否仍包含"apple":
    • 第一条记录替换后仍有"apple is my favourite fruit",符合条件。
    • 第二条记录替换后只剩" is delicious",无Apple,被排除。
    • 第三条记录替换后只剩"s are black",无Apple,被排除。
    • 第四条记录替换后剩" is made from apple",仍有Apple,符合条件。

这样就能得到你期望的第1条和第4条结果。

内容的提问来源于stack exchange,提问作者S.Dan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 08:47:21