能否简化SQL的LIKE查询语句,合并重复匹配条件?
简化LIKE条件的合并方案
可以合并,但具体实现分数据库情况:
支持正则表达式的数据库(如MySQL、PostgreSQL、SQLite 3.38+)
用正则表达式就能把两种匹配逻辑整合到一起,通过(1|2)?表示“可选的1或2”,这样既覆盖parameter:、parameter1:、parameter2:三种符合要求的情况,又能排除parameter7:这类不符合的内容:
MySQL/MariaDB写法:
SELECT * FROM table1 WHERE text REGEXP 'parameter(1|2)?:.*'
PostgreSQL写法:
SELECT * FROM table1 WHERE text ~ 'parameter(1|2)?:.*'
仅支持标准LIKE通配符的数据库(如SQL Server)
标准LIKE语法没有“可选匹配”的量词,所以没法把两个LIKE条件合并成一个纯LIKE语句。你当前用OR连接两个LIKE的写法已经是最简洁的实现方式了,没必要强行合并。
内容的提问来源于stack exchange,提问作者Bear
相关产品推荐
相关产品推荐

