侧边栏壁纸
博主头像
落叶人生博主等级

走进秋风,寻找秋天的落叶

  • 累计撰写 130562 篇文章
  • 累计创建 28 个标签
  • 累计收到 9 条评论
标签搜索

目 录CONTENT

文章目录

MySql 查询以逗号分隔的字符串的方法(正则)

2023-12-01 星期五 / 0 评论 / 0 点赞 / 43 阅读 / 2045 字

现数据库表中某个字段保存的值为“01,07,08”,需要sql去查询下表中到相应的名称:1、使用find_in_set()...查询字段中包含01,07,08的记录: SELECT*FROMtestW

现数据库表中某个字段保存的值为“01,07,08”,需要sql去查询下表中到相应的名称:
1、使用find_in_set()...
查询字段中包含01,07,08的记录:

SELECT * FROM test WHERE find_in_set('01',itemname) OR find_in_set('07',itemname);

这SQL,肿么给它拆分开呢,难道再循环一下....

2、正则表达式,完美解决:

SELECT * FROM test WHERE itemname REGEXP '(01|07|08)';
SELECT * FROM test WHERE CONCAT(',',itemname,',') REGEXP '[^0-9]+(3|9)[^0-9]+';

这个查询出来是多条数据的,然后再用到了group_concat()函数,OK

项目中就这么写的:

SELECT      group_concat(itemname)  FROM      code_library  WHERE      codeno = 'Com_insurance'  AND itemno REGEXP (      SELECT          REPLACE (Species, ',', '|')      FROM          capital_info      WHERE          customerid = '2016011800000001'  )

参考:

MYSQL中利用select查询某字段中包含以逗号分隔的字符串的记录方法
http://my.oschina.net/wallenheng/blog/402246

MySql 查询以逗号分隔的字符串的方法(正则)

http://blog.csdn.net/hechurui/article/details/50550468

MySQL模糊查询:LIKE模式和REGEXP模式

http://www.linuxidc.com/Linux/2015-03/114580.htm

广告 广告

评论区