2

正規化したいコンマ区切りのリストを含む1つのフィールドを持つデータベースがあります。フィールドは次のようになります...

16-BIT, 20 MHz, MICROPROCESSOR, PQFP100

常に同じ数のコンマで区切られた項目があるとは限りませんが、私が気にする唯一の項目であり、「PQFP100」より上の場合は、引き出して正規化したい項目が常に最後の項目になります。

列を別のテーブルに移動するSQLは理解していると思いますが、そのPQFP100部分のみを選択する方法がわかりません。これが私がこれまでに持っているものです...

insert ignore into part_pkg (pkg_name)
select part_desc
from part_raw
group by pkg_name;

'from part_raw'の部分に何かが必要だと思いますが、どこから始めればよいのかさえわかりません:)

うまくいけば、これは十分に明確です。ありがとう

4

2 に答える 2

3

これを選択した場合:

select substring_index('16-BIT, 20 MHz, MICROPROCESSOR, PQFP100',',',-1)

あなたはこれを得るでしょう:

PQFP100

したがって、挿入ステートメントは次のようにする必要があります。

insert ignore into part_pkg (pkg_name)
select substring_index(part_desc',',',-1)
from part_raw
group by pkg_name;
于 2012-04-30T20:21:26.970 に答える
0

これを試して:

insert ignore into part_pkg (pkg_name)
select SUBSTRING_INDEX(part_desc, ',', -1)
from part_raw
group by pkg_name;
于 2012-04-30T20:21:56.137 に答える