在很多时候都有这样的设计场景,一个字段会存储多个id编号,以逗号分隔开,需要关联查询数据。
采用内置函数FIND_IN_SET实现
![](https://img-blog.csdnimg.cn/20190826152549902.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwMTYyNzM1,size_16,color_FFFFFF,t_70)
![](https://img-blog.csdnimg.cn/20190826152148508.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwMTYyNzM1,size_16,color_FFFFFF,t_70)
查询列point里多个编号所代表的记录信息
select t.id,t.point,
(select GROUP_CONCAT(po.name) from tb_point_catalog as po where FIND_IN_SET(po.id,t.point)) as ponitName
from tb_topic as t;
查询结果
GROUP_CONCAT函数
语法:GROUP_CONCAT(expr)
GROUP_CONCAT会将多个值以逗号拼接起来,返回成一个字符串
FIND_IN_SET函数
语法:FIND_IN_SET(str,strlist)
str要查询的字符串
strlist字段名,参数以逗号分隔开
以上就是本文的全部内容,希望对大家的学习有所帮助,欢迎评论交流。能get到知识点不要忘了关注点个赞~ 拒绝白嫖从我们做起hh~