新建一张表:users 表示参会人员
新建表meet 表示会议
现在要实现查询meet表中musers列中的id串对应的uname
SELECT ta.mid,ta.mname,GROUP_CONCAT(ta.uname)as ids FROM (select m.mid,m.mname,u.uname,FIND_IN_SET(u.uid,m.musers)as tt from meet m,users u)as ta where ta.tt>0 GROUP BY ta.mid
效果如下图:
注:
1: mysql手册中find_in_set函数的语法:
FIND_IN_SET(str,strlist)
假如字符串str 在由N 子链组成的字符串列表strlist 中,则返回值的范围在 1 到 N 之间。
一个字符串列表就是一个由一些被‘,’符号分开的子链组成的字符串。如果第一个参数是一个常数字符串,而第二个是type SET列,则 FIND_IN_SET() 函数被优化,使用比特计算。
如果str不在strlist 或strlist 为空字符串,则返回值为 0 。如任意一个参数为NULL,则返回值为 NULL。这个函数在第一个参数包含一个逗号(‘,’)时将无法正常运行。
2:GROUP_CONCAT()用于将一组中的数据拼起来即行转列
第一次写博客,布局简直辣眼呀。。。。。
有错误希望指出,谢谢!