Mysql 将多个INSERT语句组合成一个语句

Mysql 将多个INSERT语句组合成一个语句,mysql,Mysql,是否有办法将这些陈述合并为一个?编辑原始问题的更新方式: 您可以使用@adam0101所述的联合来组合这些INSERT语句,但不会比使用4条INSERT语句快 请注意,您确实应该重新设计您的数据库。这样做将减少重复数据并提高数据库的性能 INSERT INTO TABLE WEEKS (ID, WK1) SELECT ID, WEEK1 FROM TBL1 WHERE ID = 100; INSERT INTO TABLE WEEKS (ID, WK2) SELECT ID, WEEK2 FR

是否有办法将这些陈述合并为一个?

编辑原始问题的更新方式:

您可以使用@adam0101所述的联合来组合这些INSERT语句,但不会比使用4条INSERT语句快

请注意,您确实应该重新设计您的数据库。这样做将减少重复数据并提高数据库的性能

INSERT INTO TABLE WEEKS (ID, WK1) SELECT ID, WEEK1 FROM TBL1 WHERE ID = 100; 
INSERT INTO TABLE WEEKS (ID, WK2) SELECT ID, WEEK2 FROM TBL1 WHERE ID = 100;
INSERT INTO TABLE WEEKS (ID, WK3) SELECT ID, WEEK3 FROM TBL1 WHERE ID = 100;
INSERT INTO TABLE WEEKS (ID, WK4) SELECT ID, WEEK4 FROM TBL1 WHERE ID = 100;

正如其他人所说,这似乎不是一个好的桌子设计。如果可以,您应该研究规范化表结构。

如果您只想合并查询,可以使用以下方法:

INSERT INTO TABLE WEEKS (ID, WK1, WK2, WK3, WK4)
      SELECT ID, WEEK1, NULL, NULL, NULL FROM TBL1 WHERE ID = 100; 
UNION SELECT ID, NULL, WEEK2, NULL, NULL FROM TBL1 WHERE ID = 100;
UNION SELECT ID, NULL, NULL, WEEK3, NULL FROM TBL1 WHERE ID = 100;
UNION SELECT ID, NULL, NULL, NULL, WEEK4 FROM TBL1 WHERE ID = 100;

你应该改变你的桌子设计。它不是标准化的。如果你把它们合并成一个,你会得到什么?你应该照@juergend写的做。如果你从一开始就这么做了,你就不会考虑如何把所有这些都粘在一起了。我投了更高的票来抵消选民的不满。糟糕的桌子设计并不意味着这是一个糟糕的问题。有时,人们从他人那里继承代码,而无法控制设计。他们应该仍然能够提问。您可以在tbl1中设置week1-weekn,并且每周运行一个alter表来添加新的一周?这将只插入一条记录,而原始查询插入4条。这是我的错误。它不是一个常量值。这将只插入一条记录,而原始查询将插入4行。是的,但我仍然不能确定4行是他想要的。1-4周是TBL1的列。它们不是一个常数。
INSERT INTO TABLE WEEKS (ID, WK1,WK2,WK3,WK4) SELECT ID, 1,2,3,4 FROM TBL1 
WHERE ID = 100;