当前位置:   article > 正文

mysql逗号分隔字段查询并按记录顺序显示输出_mysql 逗号分隔排序

mysql 逗号分隔排序

标签表:

idtag_idtag_name
11bt1
22bt2
33bt3

记录表:

idtag_ids
11,3,2
23,1,2

SQL语句:

  1. SELECT SQL_CALC_FOUND_ROWS r.*,
  2. GROUP_CONCAT(t.tag_name ORDER BY FIND_IN_SET(t.tag_id , r.tag_ids)) AS tag_names
  3. FROM records r
  4. LEFT JOIN tag t ON FIND_IN_SET(t.tag_id , r.tag_ids)
  5. GROUP BY r.id
  6. ORDER BY r.id
  7. LIMIT 0,1

结果:


小结:

GROUP_CONCAT(expr)函数:将多个字符串连接成一个字符串,中间用逗号隔开;

FIND_IN_SET(str,strlist)函数:一个字段中含有多个值用逗号隔开,在关联表时,可以拆分逗号逐一去和被关联表的字段比较(str:要查询的字符串,如上方标签表的tag_id字段;strlist:以逗号,分隔的字符串列表,如上方记录表的tag_ids字段)

重点:想要按记录顺序显示输出,在GROUP_CONCAT函数里加上order by FIND_IN_SET函数,不然会按该字段表的id升序输出导致数据错乱

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

闽ICP备14008679号