352 votes

INSERT avec SELECT

Disons que j'ai une requête qui insère en utilisant un select comme tel:

 INSERT INTO courses name, location, gid 
            SELECT (name, location, gid) 
              FROM courses 
             WHERE cid = $cid
 

Est-il possible de ne sélectionner que "name, location" pour l'insertion et de définir gid sur autre chose dans la requête?

649voto

Andrew Points 5827

Oui, absolument, mais vérifiez votre syntaxe.

 INSERT INTO courses (name, location, gid)
SELECT name, location, 1
FROM   courses
WHERE  cid = 2
 

Vous pouvez mettre une constante du même type que gid à sa place, pas seulement 1, bien sûr. Et, je viens de composer la valeur cid .

42voto

Dumitrescu Bogdan Points 3264

Oui, ça l'est. Tu peux écrire :

 INSERT INTO courses (name, location, gid) 
SELECT name, location, 'whatever you want' 
FROM courses 
WHERE cid = $ci
 

ou vous pouvez obtenir des valeurs d'une autre jointure de la sélection ...

8voto

RolandoMySQLDBA Points 19439

La syntaxe correcte : sélectionnez orthographe n’allait pas

7voto

klennepette Points 2030

Bien sûr, que voulez-vous utiliser pour le gid ? une valeur statique, PHP var...

Une valeur statique 1234 pourrait ressembler :

1voto

Tobiask Points 3106

Je pense que votre INSERT instruction est erronée, voir syntaxe correcte : http://dev.mysql.com/doc/refman/5.1/en/insert.html

Edit : comme déjà souligné Andrew...

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X