MySQL列转行实现
列转行explode实现

# SQL
SELECT 
-- explode(split(str,',')) -- mysql没有
-- 当help_topic_id=0时,第一个SUBSTRING_INDEX拿到'aaa',当help_topic_id=1时,拿到'aaa,bbb',然后第二层SUBSTRING_INDEX再取出最后的拆分字段
SUBSTRING_INDEX(SUBSTRING_INDEX(str,',',help_topic_id+1),',',-1) 
FROM (SELECT "aaa,bbb,ccc" str UNION ALL SELECT "aa,ddd" str) t
-- 辅助表mysql.help_topic,拿自增列(0-642)help_topic_id,也可以自己建辅助表
,mysql.help_topic h 
-- 拿到分隔符的个数来决定辅助自增列的范围(拆分字段要分几行)
WHERE h.help_topic_id<LENGTH(t.str)-LENGTH(REPLACE(t.str,',',''))+1
# 结果
aaa
bbb
ccc
aa
ddd

#解析
/***
字符串拆分: SUBSTRING_INDEX(str, delim, count)
参数解说     解释
str     需要拆分的字符串
delim     分隔符,通过某字符进行拆分
count     当 count 为正数,取第 n 个分隔符之前的所有字符; 当 count 为负数,取倒数第 n 个分隔符之后的所有字符。

列如:
SELECT SUBSTRING_INDEX('aaa,bbb,ccc',',',2);
aaa,bbb
SELECT SUBSTRING_INDEX('aaa,bbb,ccc',',',-1);
ccc
SELECT SUBSTRING_INDEX('aaa,bbb,ccc',',',-2);
bbb,ccc
*/