一个字段有多个id且用的括号,逗号隔开,如果关联表查询sql语句
select o.*,GROUP_CONCAT(u.USER_NAME) as user
from uupm_user u JOIN uupm_org o
on FIND_IN_SET( u.USER_ID, REPLACE (REPLACE (o.day_leader_ids, '[', ''),']','') )
GROUP BY o.ORG_ID
①o.day_leader_ids字段存储时,使用中括号“[ ]”包起来的,所以第一步要去掉中括号(如果没有中括号,这一步可以省略),故而用到方法replace,此处的去中括号语句为: REPLACE ( REPLACE (A.hospital_catalog, '[', '') ,']','') 。其中紫色部分为去除中括号的左半部分“ [ ”,红色部分是在去掉左半部分括号的基础上去掉右半部分的括号“]”。 去除之后,原本是“[28,137,30]”的数据会变成“28,137,30”
②FIND_IN_SET(str,strlist),该函数用于判断 str 是否在 strlist 中,如果是,作为条件,返回对应数据,如果str不在strlist 或strlist 为空字符串,则返回值为 0 。
③group_concat(),官方:该函数返回带有来自一个组的连接的非NULL值的字符串结果。