当前位置:   article > 正文

Mysql 逗号分割&&分组拼接_mysql 拆分逗号分隔

mysql 拆分逗号分隔

需求:

解决思路:1.拆分   2.关联查询中文  3.根据单号,分组拼接查询的中文

开始吧!

一、拆分逗号分隔

  1. -- 拆分
  2. select
  3. r.check_report_code,
  4. r.sample_name '原字段值',
  5. r.sample_name1 '拆分后字段值',
  6. s1.name '文本值'
  7. from(
  8. SELECT A1.*,
  9. SUBSTRING_INDEX(SUBSTRING_INDEX(A1.sample_name,',',A2.help_topic_id+1),',',-1) as 'sample_name1'
  10. from efs_check_report A1
  11. left join mysql.help_topic A2 -- 这个表是谁无所谓,需要的是它有连续足够多的索引
  12. on A2.help_topic_id < (LENGTH(A1.sample_name)-LENGTH(REPLACE(A1.sample_name,',',''))+1)
  13. ) as r
  14. LEFT JOIN efs_sample_category s1 on s1.path = r.sample_name1
  15. ORDER BY r.check_report_code desc;

二、分组后,拼接字段

  1. select
  2. rp.check_report_code,
  3. rp.sample_name '原字段值',
  4. GROUP_CONCAT( DISTINCT rp.name SEPARATOR ',' ) '字段拼接显示中文'
  5. from
  6. (select
  7. r1.check_report_code,
  8. r1.sample_name,
  9. s1.name
  10. from(
  11. SELECT A1.*,
  12. SUBSTRING_INDEX(SUBSTRING_INDEX(A1.sample_name,',',A2.help_topic_id+1),',',-1) as 'sample_name1'
  13. from efs_check_report A1
  14. left join mysql.help_topic A2
  15. on A2.help_topic_id < (LENGTH(A1.sample_name)-LENGTH(REPLACE(A1.sample_name,',',''))+1)
  16. ) as r1
  17. LEFT JOIN efs_sample_category s1 on s1.path = r1.sample_name1) as rp
  18. GROUP BY rp.check_report_code
  19. HAVING COUNT(check_report_code) >= 1

解决啦!撒花~

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

闽ICP备14008679号