我有一个包含逗号分隔列表的字段的数据库,我希望将其标准化。这个领域看起来像这样......
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'部分的内容,但甚至不知道从哪里开始:)
希望这很清楚。感谢
答案 0 :(得分:3)
如果你选择这个:
select substring_index('16-BIT, 20 MHz, MICROPROCESSOR, PQFP100',',',-1)
你会得到这个:
PQFP100
所以insert语句必须是这样的:
insert ignore into part_pkg (pkg_name)
select substring_index(part_desc',',',-1)
from part_raw
group by pkg_name;
答案 1 :(得分:0)
试试这个:
insert ignore into part_pkg (pkg_name)
select SUBSTRING_INDEX(part_desc, ',', -1)
from part_raw
group by pkg_name;