在很多时候都有这样的设计场景,一个字段会存储多个id编号,以逗号分隔开,需要关联查询数据。
采用内置函数FIND_IN_SET实现
查询列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字段名,参数以逗号分隔开