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

如何简化包含特定字符串的SQL查询语句,替代多个LIKE条件实现更紧凑的写法

如何简化包含特定字符串的SQL查询语句,替代多个LIKE条件实现更紧凑的写法

嘿,我懂你想让查询代码更清爽的心情——重复写好几个LIKE确实有点冗余!先给你拆解下怎么优化你的需求:

首先,你原来写的三个LIKE条件其实完全可以合并成一个:

SELECT name
FROM world
WHERE name LIKE '%united%'

因为%united%这个模式会匹配任何位置包含"united"的字符串,不管它在名称的开头、结尾还是中间,已经覆盖了你之前三个条件的所有情况,一下子就简洁多了!

如果你确实想找类似IN的模式匹配写法(毕竟IN不支持通配符模式匹配,它只会做完全相等的匹配,所以你之前的尝试行不通),那可以用正则表达式来实现:

  • 在MySQL、MariaDB这类数据库里,用REGEXP或者RLIKE关键词:
    SELECT name
    FROM world
    WHERE name REGEXP 'united'
    
  • 要是用PostgreSQL,对应的操作符是~:
    SELECT name
    FROM world
    WHERE name ~ 'united'
    

这种写法不仅和%united%效果一致,后续如果要匹配更复杂的多模式(比如同时找包含"united"或"kingdom"的名称),还能直接扩展成REGEXP 'united|kingdom',灵活性拉满。

总结下:

  • 最简单的简化:直接合并成单个LIKE '%united%'
  • 追求类似IN的模式集合写法:用数据库支持的正则匹配关键词

备注:内容来源于stack exchange,提问作者ProgrammingPi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.13 18:19:39