两个表的结构如下
a表![数据库中某个表中的某个字段的值是用逗号隔开的多个值,根据逗号拆分并从另一个表中查出数据返回 数据库中某个表中的某个字段的值是用逗号隔开的多个值,根据逗号拆分并从另一个表中查出数据返回](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzQ4My8zNzJhMDRlNzRkOWFjM2MzNmQxMGM1ZGNkMzQzYmVjMy5wbmc=)
b 表![数据库中某个表中的某个字段的值是用逗号隔开的多个值,根据逗号拆分并从另一个表中查出数据返回 数据库中某个表中的某个字段的值是用逗号隔开的多个值,根据逗号拆分并从另一个表中查出数据返回](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzEwOS9hYmE5ZTBhZjQ4MDRkOGNkY2QwZWI2N2NhZWQxZjI1ZC5wbmc=)
关系说明
b.teacherid = a . user_id
查询思路 :
-
FIND_IN_SET(str,strlist),该函数用于判断 str 是否在 strlist 中,如果是,作为条件,返回对应数据,如果str不在strlist 或strlist 为空字符串,则返回值为 0 。
-
group_concat(),官方:该函数返回带有来自一个组的连接的非NULL值的字符串结果。
通俗点理解:group_concat()会计算哪些行属于同一组,将属于同一组的列按照一定的拼接规则拼接好显示出来。形象的来说就是把列里的内容转化到了行里。
效果图
![数据库中某个表中的某个字段的值是用逗号隔开的多个值,根据逗号拆分并从另一个表中查出数据返回 数据库中某个表中的某个字段的值是用逗号隔开的多个值,根据逗号拆分并从另一个表中查出数据返回](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzUvMGY4NTY1MDkwYzc5ODc4M2I5ZmJjNDk1ZDgxYTRkMGQucG5n)