一个查询以插入具有多个列的多个行

时间:2012-04-23 19:03:31

标签: php mysql insert multiple-columns

假设我要插入此数据:

Row 1: People = '40', Places = '15'
Row 2: People = '5', Places = '10'

我知道这就是你执行上述操作的方式:

mysql_query("INSERT INTO mytable(`People`, `Places`) 
VALUES ('40', '15'),('5', '10')");

但是如果我想用一个查询插入两个以上的列呢?如果要插入的数据是这样的:

Row 1: People = '40', Places = '15'
Row 2: People = '5', Places = '10'
Row 3: Things = '140', Ideas = '20'
Row 4: People = '10', Things = '5', Ideas = '13'

我似乎无法在其他任何地方找到这样的问题。

4 个答案:

答案 0 :(得分:3)

保留您不想填写null

的列
INSERT INTO mytable(`People`, `Places`, Things, Ideas) 
VALUES ('40', '15', null, null),(null, null, 100, 20)

答案 1 :(得分:3)

mysql_query("INSERT INTO mytable(`People`, `Places`, `Ideas`, `things`)
 VALUES ('40', '15',  null, null),
        (null, '5',   '10', null),
        ('10',  null, '11', '12')");

或者如果你想使用0而不是null,它对你的应用程序可能会更友好(没有抛出空错误)

mysql_query("INSERT INTO mytable(`People`, `Places`, `Ideas`, `things`)
 VALUES ('40', '15', '0',  '0'),
        ('0',  '5',  '10', '0'),
        ('10', '0',  '11', '12')");

答案 2 :(得分:1)

INSERT INTO mytable(`People`, `Places`,`Things`,`Ideas`) 
VALUES ('40', '15', null, null),
       ('5', '10',null, null),
       (null, null, '140','20'),
       ('10',null,'5','13')");

答案 3 :(得分:1)

您可以在一行中编写单独的查询语句,如下所示:

insert into table_x (collumn_x,collumn_y) values (... ; 
insert into table_x (collumn_y, collumn_z) values (... 

等等

以语音方式安装语句的结构可能很复杂,但至少是我现在可以为你解决的唯一解决方案

希望这可以帮助你