SELECT stationid from sys_workstation where FIND_IN_SET(stationid,(SELECT GROUP_CONCAT(opera_area) from rl_user_role where userno = 24));

注明:1.select opera_area from rl_user_role where userno = 24; 数据库查出来的数据如下图:

mysql中find_in_set结合GROUP_CONCAT使用-LMLPHP

2.使用GROUP_CONCAT函数,  SELECT GROUP_CONCAT(opera_area) from rl_user_role where userno = 24; 查出来的数据格式如下图:

mysql中find_in_set结合GROUP_CONCAT使用-LMLPHP

3.最后使用find_in_set,看stationid 在一个字符串(‘3,15,13’)当中没。相当与where stationid in (3,15,13)

注意:GROUP_CONCAT函数有长度限制,如果拼接的数据太多就丢失数据了

05-02 19:48