两张表如下:
想要把edu_phase_ids中的id换成表2中的汉字,这sql该怎么写。
写个方法把,把第一张图的edu_phase_ids 和 id 取出来把,然后判断第二张表的1234数据中有没有,有的话就字符串拼接,最后通过id存进去
SELECT
g.bid,
GROUP_CONCAT( g.NAME ) AS end_name
FROM
(
SELECT
d.*,
e.NAME
FROM
(
SELECT
b.id AS bid,
b.edu_id,
SUBSTRING_INDEX( SUBSTRING_INDEX( b.edu_id, ',', c.help_topic_id + 1 ), ',',- 1 ) AS kai_id
FROM
nj a
LEFT JOIN kc b ON a.id = b.edu_id
JOIN mysql.help_topic c ON c.help_topic_id < ( LENGTH( b.edu_id ) - LENGTH( REPLACE ( b.edu_id, ',', '' ) ) + 1 )
WHERE
a.id > 0
GROUP BY
b.id,
kai_id
) d
LEFT JOIN nj e ON d.kai_id = e.id
) g
GROUP BY
g.bid
只会这样的笨方法了,思路是:把这一条数据打散成多条,挨个匹配上以后,再合并起来。
有更好的方法希望指正。
SELECT CONCAT(IF(FIND_IN_SET(1,edu_phase_ids)>0,'学前教育',''),',',
IF(FIND_IN_SET(2,edu_phase_ids)>0,'小学',''),',',
IF(FIND_IN_SET(3,edu_phase_ids)>0,'初中',''),',',
IF(FIND_IN_SET(4,edu_phase_ids)>0,'高中','')
) FROM 表1;