One query to insert multiple rows with multiple columns

陌路散爱 提交于 2019-12-01 11:02:31

问题


Let's say I want to insert this data:

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

I understand that this is how you'd execute the above:

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

But what if I wanted to insert into more than two columns with a single query? What if the data to be inserted was like this:

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'

I can't seem to find a question like this anywhere else.


回答1:


Leave the columns you don't wanto to fill with null

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



回答2:


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

Or if you want to use 0 instead of null, it will likely be more friendly to you application (no throwing null errors)

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



回答3:


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



回答4:


You could write separate query statements in one single line like this:

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

and so on

the structure to mount the statement dinamically may be complex to build, but at least is the only solution i can figure out for u at the moment

hope this helps you



来源:https://stackoverflow.com/questions/10286620/one-query-to-insert-multiple-rows-with-multiple-columns

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!