场景:
merchant_info表中area_ids字段中存储中以 , 分割的id,该id为sys_area表中的id
目的:
一条SQL语句查出对应sys_area表中对应的名字,同样以 , 分割
直接上代码:
SELECT t1.*, GROUP_CONCAT(t2.area_name)
FROM merchant_info t1, sys_area t2
WHERE FIND_IN_SET(t2.id, t1.area_ids) > 0
使用FIND_IN_SET查询出对应的名字
结果:
数据为虚拟数据,用作测试
--------------------------------------- 华丽的分割线 -----------------------------------------------------
上面的语句适用于id一定存在的情况,如字段未填写,则会无数据,需要改成LEFT JOIN形式
SELECT t1.*, GROUP_CONCAT(t2.area_name)
FROM merchant_info t1
LEFT JOIN sys_area t2 ON FIND_IN_SET(t2.id, t1.area_ids) > 0
GROUP BY t1.id