Mysql中关于ID串的查询

Mysql中关于ID串的查询:
   准备两张表,只做测试使用,没有任何实际的意义!
  
   新建一张表: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()用于将一组中的数据拼起来即行转列

第一次写博客,布局简直辣眼呀。。。。。
有错误希望指出,谢谢!
 

 
 


 

猜你喜欢

转载自www.cnblogs.com/ben4/p/10262786.html