mysql 一行資料拆分多行

2021-10-10 17:17:29 字數 1069 閱讀 7648

# 查詢出被逗號分隔字段需要拆分的最大數量

select max((length(逗號分隔的字段)-length(replace(逗號分隔的字段, ',', ''))+1)) from 處理表 where 條件;

# 建立一張臨時表用於聯合查詢,方便把處理表單行記錄分隔為多行

create temporary table incre_table (

`id` int not null auto_increment,

primary key (`id`)

);insert into incre_table values (1);

insert into incre_table values (2);

insert into incre_table values (3);

insert into incre_table values (4);

insert into incre_table values (5);

insert into incre_table values (6);

insert into incre_table values (7);

insert into incre_table values (8);

insert into incre_table values (9);

insert into incre_table values (10);

# ... 大於 需要拆分的最大數量

# 關鍵在於連表查詢 on b.id <= 逗號分隔的數量

select

a.id,

substring_index(

substring_index(a.逗號分隔的字段, ',', b.id),

',', - 1

)from

處理表 a

right join incre_table b on b.id <= (

length(a.逗號分隔的字段) - length(replace (a.逗號分隔的字段, ',', '')) + 1

)where

a.條件;

mysql多行合併一行,一行拆分多行

資料 建表語句 drop table if exists 品牌 create table 品牌 id int 0 not null,品牌 varchar 255 character set utf8 collate utf8 general ci null default null engine i...

pandas實現多行合併一行 一行拆分多行

import pandas as pd 構造資料 data pd.dataframe 合併資料 合併前 合併後 import pandas as pd 構造資料 data pd.dataframe 拆分資料 data pinpai data 品牌 str.split expand true data...

mysql中將一行轉化為多行資料

之前在網上搜尋了很多關於這個問題的解答方式,基本都是使用substring index和mysql.help topic搭配使用,方法沒錯,但是使用後發現執行時間太長,因此就放棄使用網上推薦的方法。可以使用substring index和union all搭配使用 圖1 圖2 將圖1變為圖2,可以這...