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

如何通过SQL验证字符串是否包含指定的多个数字组合?

SQL字符串匹配:验证同时包含指定数字的条件写法

你原来的语句SELECT * FROM Book WHERE Category LIKE '%${13}%';是用来匹配**连续出现"13"**的字符串,但这不符合你要验证「同时包含1和3,或同时包含2和3」的需求,正确的写法需要拆分条件逻辑:

基础LIKE写法(兼容所有SQL数据库)

SELECT * 
FROM Book 
WHERE 
    -- 同时包含数字1和3(顺序无关)
    (Category LIKE '%1%' AND Category LIKE '%3%')
    -- 或者同时包含数字2和3(顺序无关)
    OR (Category LIKE '%2%' AND Category LIKE '%3%');

逻辑说明:

  • LIKE '%1%'检查字符串中存在数字1,LIKE '%3%'检查存在数字3,用AND连接表示两个条件必须同时满足,也就是字符串同时包含1和3。
  • 两组条件用OR连接,表示只要满足其中一组(要么同时有1和3,要么同时有2和3)就会被筛选出来。

正则表达式写法(部分数据库支持,如MySQL、PostgreSQL)

如果你的数据库支持正则表达式,可以用更简洁的写法:

MySQL 示例

SELECT * 
FROM Book 
WHERE 
    Category REGEXP '1.*3|3.*1' 
    OR Category REGEXP '2.*3|3.*2';

PostgreSQL 示例

SELECT * 
FROM Book 
WHERE 
    Category ~ '1.*3|3.*1' 
    OR Category ~ '2.*3|3.*2';

逻辑说明:

  • 1.*3|3.*1表示字符串中存在1且存在3(不管谁在前谁在后),.*匹配任意长度的任意字符。
  • 同样用OR连接两组正则条件,实现你需要的匹配规则。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 12:45:36