MySQL逗号分隔数据库字段并拆分多列 数据表格查询语句查询结果 数据表格 @姓名@字段张三1,2,3,4,5李四1,2,3 查询语句 将字符串 str 以 str1 进行分隔,并获取对应 num 位置字符串; SUBSTRING_INDEX(str,str1,num) SUBSTRING_INDEX('a,b,c,d,e',',',1) 获取结果为a SUBSTRING_INDEX('a,b,c,d,e',',',3) 获取结果为c SUBSTRING_INDEX('a,b,c,d,e',',',-1) 获取结果为e 将字符串 str 中的指定数据进行替换,str1 被替换字符串,str2 替换字符串; REPLACE(str,str1,str2) REPLACE('1,2,3,4,5',',','') 结果:12345 获取 str 字符串长度; CHAR_LENGTH(str) CHAR_LENGTH('1,2,3,4,5') 结果:9 逗号分隔并进行多列数据返回; SELECT @姓名,SUBSTRING_INDEX(SUBSTRING_INDEX(@字段,',',n),',',-1) AS VALUE FROM `tableName` JOIN (SELECT 1 n UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5)m ON CHAR_LENGTH(@字段) - CHAR_LENGTH(REPLACE(@字段,',','')) >= n -1 查询结果 姓名数据列张三1张三2张三3张三4张三5李四1李四2李四3