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

如何编写同时包含AND与OR逻辑的WHERE LIKE条件查询语句

SQL多条件匹配查询实现方案

核心逻辑

你需要的查询规则为两个条件同时生效:

  • 字段必须匹配必填字符串 [REQUIRED STRING]
  • 字段至少匹配任意一个可选字符串

为避免SQL逻辑运算优先级(AND优先级高于OR)导致的结果异常,所有可选匹配条件需要用括号包裹为一个条件组,再和必填条件用AND关联。

具体写法

精确匹配场景(字段值完全等于目标字符串)

可选值数量少时直接用OR拼接:

SELECT column FROM table
WHERE 
  column = '[REQUIRED STRING]'
  AND (
    column = 'POSSIBLE STRING_A'
    OR column = 'POSSIBLE STRING_B'
    OR column = 'POSSIBLE STRING_X'
  )

可选值数量多时用IN简化写法:

SELECT column FROM table
WHERE 
  column = '[REQUIRED STRING]'
  AND column IN ('POSSIBLE STRING_A', 'POSSIBLE STRING_B', 'POSSIBLE STRING_X')

模糊匹配场景(用LIKE匹配包含/前缀/后缀规则)

以匹配任意位置包含目标字符串为例(通配符%可根据你的匹配规则调整位置):

SELECT column FROM table
WHERE 
  column LIKE '%[REQUIRED STRING]%'
  AND (
    column LIKE '%POSSIBLE STRING_A%'
    OR column LIKE '%POSSIBLE STRING_B%'
    OR column LIKE '%POSSIBLE STRING_X%'
  )

常见问题排查

之前查询结果不符合预期,基本是以下两个问题导致:

  • 未用AND关联必填条件和可选条件组,逻辑变成只要满足必填或任意可选就返回,过滤规则失效
  • 未给可选OR条件加括号,SQL会优先计算相邻的AND条件,导致只有第一个可选字符串的匹配规则生效

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 22:54:02