mysql怎么查询出用逗号隔开的数据

~A~~L~0SH2T9$HWZ[%[`TVO.png怎么分别查询出 50201 和 502010701的数据【补贴】

柯咚咚 发布于 2020-10-23 09:44
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
L大大Lv7高级互助
发布于2020-10-23 09:44

select a.bm 部门,(select s.depart_name from sys_depart s where s.id=a.bm) '申请部门',a.appply_dept
from (
 select substring_index(a.appply_dept,',',1) bm,a.* from assets_purchase_apply a where locate(',',a.appply_dept)>0
 union all
 select substring_index(a.appply_dept,',',-1) bm,a.* from assets_purchase_apply a where locate(',',a.appply_dept)>0
 union all
 select appply_dept bm,a.* from assets_purchase_apply a where locate(',',a.appply_dept)=0
) a

  • zsh331 zsh331 搞个通用版本吧,如果字段大于二个拼接,就over了!
    2020-10-23 10:26 
  • L大大 L大大 回复 zsh331 好滴 哥
    2020-10-23 10:33 
  • L大大 L大大 回复 zsh331 一会儿的
    2020-10-23 10:33 
  • zsh331 zsh331 回复 L大大 昨天他问我了,最近有点懒,没有写,哈哈,用行转列处理,然后分组拼接(建议);
    2020-10-23 10:35 
最佳回答
0
指间沙Lv6中级互助
发布于2020-10-23 09:53(编辑于 2020-10-23 09:54)

你要查出来的数据应该是查分别的名称然后用逗号隔开的吧。

select b.id,b.persons,GROUP_CONCAT(a.`name` ORDER BY a.create_date DESC) as name


from sys_user a


join tb_business_study_record b ON FIND_IN_SET(a.id,b.persons) > 0


group by b.id,b.persons

按照这个该主要还是用FIND_IN_SET跟GROUP_CONCAT这两个函数。

  • L大大 L大大 是assets_purchase_apply中appply_dept列这个使用来关联sys_depart中id列的,但是appply_dept这个关联是用,做的分隔符,要同时关联逗号前后的id,然后分开展示出来
    2020-10-23 10:06 
  • 3关注人数
  • 559浏览人数
  • 最后回答于:2020-10-23 09:54
    请选择关闭问题的原因
    确定 取消
    返回顶部