2012-04-23 25 views
1

Disons que je veux insérer ces données:Une requête pour insérer plusieurs lignes avec plusieurs colonnes

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

Je comprends que c'est comment vous exécutez ci-dessus:

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

Mais ce si je voulais insérer dans plus de deux colonnes avec une seule requête? Que faire si les données à insérer étaient comme suit:

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' 

Je n'arrive pas à trouver une question comme celle-ci ailleurs.

+0

Je suppose que vous ne pouvez pas le faire avec une seule requête! – Anji

Répondre

3

Laissez les colonnes que vous ne WANTO à remplir avec null

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

agréable et simple, http://www.php.net/manual/fr/fonction.mysql-query.php#101945 – Alex

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

Ou si vous voulez utiliser 0 au lieu de zéro, il sera probablement plus convivial pour votre application (pas lancer null erreurs)

mysql_query("INSERT INTO mytable(`People`, `Places`, `Ideas`, `things`) 
VALUES ('40', '15', '0', '0'), 
     ('0', '5', '10', '0'), 
     ('10', '0', '11', '12')"); 
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')"); 
1

Vous pouvez écrire les instructions de requête séparés dans une seule ligne comme thi s:

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

et ainsi de suite

la structure pour monter la déclaration peut dinamically être complexe à construire, mais au moins est la seule solution que je peux comprendre pour u au moment

espoir cela vous aide

Questions connexes