我有一个选择查询,该查询带给我8列:
SELECT
substring_index(`Cuisines`,',',1),
substring_index(substring_index(`Cuisines`,',',-7),',',1),
substring_index(substring_index(`Cuisines`,',',-6),',',1),
substring_index(substring_index(`Cuisines`,',',-5),',',1),
substring_index(substring_index(`Cuisines`,',',-4),',',1),
substring_index(substring_index(`Cuisines`,',',-3),',',1),
substring_index(substring_index(`Cuisines`,',',-2),',',1),
substring_index(substring_index(`Cuisines`,',',-1),',',1)
FROM `dump`)
并且我想将它们全部插入到另一个表的单个列中,因此我试图做而不是将它们合并在一起,而是每个人都将插入新的一行,所以我想做的是:
INSERT INTO cuisines(name) VALUES (
(SELECT
substring_index(`Cuisines`,',',1),
substring_index(substring_index(`Cuisines`,',',-7),',',1),
substring_index(substring_index(`Cuisines`,',',-6),',',1),
substring_index(substring_index(`Cuisines`,',',-5),',',1),
substring_index(substring_index(`Cuisines`,',',-4),',',1),
substring_index(substring_index(`Cuisines`,',',-3),',',1),
substring_index(substring_index(`Cuisines`,',',-2),',',1),
substring_index(substring_index(`Cuisines`,',',-1),',',1)
FROM `dump`))
有没有办法单独在MySQL上做到这一点?
最佳答案
INSERT INTO cuisines(name)
VALUES ((SELECT substring_index(`Cuisines`,',',1) FROM `dump`));
INSERT INTO cuisines(name) VALUES (
(SELECT substring_index(substring_index(`Cuisines`,',',-7),',',1)FROM `dump`))
INSERT INTO cuisines(name) VALUES (
(SELECT substring_index(substring_index(`Cuisines`,',',-6),',',1)FROM `dump`))
INSERT INTO cuisines(name) VALUES (
(SELECT substring_index(substring_index(`Cuisines`,',',-5),',',1)FROM `dump`))
INSERT INTO cuisines(name) VALUES (
(SELECT substring_index(substring_index(`Cuisines`,',',-4),',',1)FROM `dump`))
INSERT INTO cuisines(name) VALUES (
(SELECT substring_index(substring_index(`Cuisines`,',',-3),',',1)FROM `dump`))
INSERT INTO cuisines(name) VALUES (
(SELECT substring_index(substring_index(`Cuisines`,',',-2),',',1)FROM `dump`))
INSERT INTO cuisines(name) VALUES (
(SELECT substring_index(substring_index(`Cuisines`,',',-1),',',1) FROM `dump`))