网站优化

网站优化

Products

当前位置:首页 > 网站优化 >

学习这招,轻松将MySQL单行数据拆分多行,效率翻倍!

GG网络技术分享 2025-11-14 03:30 3


在MySQL中,将一列数据拆分成许多行通常涉及到用SUBSTRING_INDEX函数。

虚假设我们有一个表my_table,其中有一个字段my_column包含逗号分隔的值,我们想要将个个值作为单独的行。

sql CREATE TABLE mytable ( id INT, mycolumn VARCHAR );

INSERT INTO my_table VALUES , , ;

sql SELECT id, SUBSTRING_INDEX, ',', -1) AS value FROM my_table JOIN ( SELECT a.N + b.N * 10 + 1 n FROM a , b ORDER BY n ) numbers ON CHAR_LENGTH - CHAR_LENGTH)>= numbers.n - 1;

这玩意儿查询的干活原理如下:

  1. 创建一个数字表numbers,它包含从1到足够巨大的数字,以确保Neng覆盖my_column中的分隔符数量。
  2. JOIN操作将my_table与数字表连接起来。
  3. SUBSTRING_INDEX函数来根据逗号分隔my_column中的值。
  4. numbers.n用于指定SUBSTRING_INDEX函数得返回的子字符串的索引。

这玩意儿查询将返回如下后来啊:

id value
1 value1
1 value2
1 value3
2 value4
2 value5
3 value6

这样,个个逗号分隔的值dou被转换成了单独的行。

标签:

提交需求或反馈

Demand feedback