在写代码时遇到需要按照逗号分割的需求,
如:
1,2,3分割成
1
2
3
懒得写程序转换,想mysql一步到位,故而找到大佬写的文章,以下是大佬文章中核心源码。
SELECT
(查询表的自增id),
substring_index(
substring_index(
(需要分割的列),
',',
b.help_topic_id + 1
),
',' ,- 1
) AS 别名,(其他字段名)
FROM
(SELECT @rownum := @rownum+1 AS id,(其他字段名), (需要分割的列)
FROM (SELECT @rownum:=0)r , (你的表,这里的括号要删掉) as t
) a
//下面一行尽量不要改动,只需要改2个地方就是length()和REPLACE()里面的
//a.CFXFBHLB也就是你的表中需要分割的列名字。
JOIN mysql.help_topic b ON b.help_topic_id < (
length(需要分割的列) - length(
REPLACE (需要分割的列, ',', '')
) + 1
)
转载自https://blog.csdn.net/qq_34134299/article/details/126604767