2017-04-18 18 views
0

Iは、以下の表を持っている:行と列フィードとしてのSQL変換行個々の行に

id, names, group 
1, 'mike\nsteve', 1 
2, 'maria\npeter\nlisa', 1 

名が保存されています。 私は別のテーブルに行を分離するためにすべての名前を移動したい:

id, name, group 
1, mike, 1 
2, steve, 1 
3, maria, 1 
4, peter, 1 
5, lisa, 1 

は、私は単一のクエリでこれを行うことができますか?

答えて

0

私は最も簡単な方法は、あなたが文字列の名前の最大数をより多くのサブクエリを追加する必要がありますunion all

select id, substring_index(names, '\n', 1), group 
from t 
union all 
select id, substring_index(substring_index(names, '\n', 2), '\n', -1), group 
from t 
where names like '%\n%' 
union all 
select id, substring_index(substring_index(names, '\n', 3), '\n', -1), group 
from t 
where names like '%\n%\n%' 
. . . 

だと思います。

create table asまたはinsert into . . .を使用して別の表に入れることができます。

+0

OPはそれらを別のテーブルに挿入しようとしています。 –

関連する問題