mysql中实现一行变多行
mysql中实现一行变多行 要求是time_slots是一个text,里面有多个time_slot_id,每个time_slot_id按照.进行连接,现在需要将这些.进行拆分,因为我们要把拆分出来的time_slot_id和别的表进行关联
select code, t1.title, department_name, t1.type, t2.title, week, start_time, end_week, end_time, t2.type from ( SELECT code, title, department_name, type, SUBSTRING_INDEX(SUBSTRING_INDEX(time_slots, ., n.n), ., -1) AS time_slot FROM cn_work_hours CROSS JOIN (SELECT 1 AS n UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9 UNION ALL SELECT 10 ) n WHERE (n.n <= CHAR_LENGTH(time_slots) - CHAR_LENGTH(REPLACE(time_slots, ., )) + 1) and status = 1 and department_name = IS部 ) t1 left join ( select id, title, week, start_time, end_week, end_time, type from cn_work_time_slot ) t2 on t1.time_slot = t2.id