在MySQL中规范化日期,其中一列包含逗号分隔的项目

时间:2012-04-30 20:10:55

标签: mysql

我有一个包含逗号分隔列表的字段的数据库,我希望将其标准化。这个领域看起来像这样......

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'部分的内容,但甚至不知道从哪里开始:)

希望这很清楚。感谢

2 个答案:

答案 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;