当前位置:   article > 正文

mysql中要根据某个逗号分割的字符串关联查询另一张表的数据_mysql 逗号分隔的字符串in其他表

mysql 逗号分隔的字符串in其他表

首先观察下面的查询

select * from company where f_id in ('210','205','208')

select * from company where f_id in ('210,205,208')

现在我要根据另一张模板表中的一个字段查询他下面的公司,存的是字符串类型

这时

 

select * from company where f_id in (select company_id from templet where f_id=583)

只查询出一条数据,说明他查询的结果是一个字符串'210,205,208',而我们需要的是'210','205','208',

这时会想到分割,但是发现需要循环很麻烦。这里提供正则表达式的方式解决如下

先把字符串替换成正则需要的样式,把‘210,205,208’转成210|205|208,再用正则匹配

SELECT   *  FROM    company    WHERE   f_id REGEXP (SELECT  REPLACE (  (   SELECT     company_id   FROM    templet    WHERE       f_id = 583   ),     ',',   '|' ))

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/230827
推荐阅读
相关标签
  

闽ICP备14008679号