Maison >base de données >tutoriel mysql >Puis-je INSÉRER dans une table avec SELECT, en attribuant une valeur différente à une colonne ?

Puis-je INSÉRER dans une table avec SELECT, en attribuant une valeur différente à une colonne ?

Linda Hamilton
Linda Hamiltonoriginal
2025-01-18 19:46:11117parcourir

Can I INSERT into a table with SELECT, assigning a different value to one column?

Combinaison de INSERT et SELECT avec des valeurs de colonne modifiées

Cet exemple montre comment insérer des données dans la table courses à l'aide d'une instruction SELECT, tout en attribuant simultanément une valeur spécifique à la colonne gid, quelle que soit la valeur extraite de la table source.

La requête d'origine tente de copier les données de la table courses :

<code class="language-sql">INSERT INTO courses (name, location, gid) 
SELECT name, location, gid 
FROM courses 
WHERE cid = $cid</code>

La question est de savoir si nous pouvons modifier la valeur gid pendant le processus d'insertion.

Solution

Oui, c'est réalisable. La clé est de remplacer la colonne gid dans l'instruction SELECT par une valeur constante ou une expression différente. La requête suivante illustre ceci :

<code class="language-sql">INSERT INTO courses (name, location, gid)
SELECT name, location, 1  -- '1' is the new gid value
FROM   courses
WHERE  cid = 2  -- Example condition; replace '2' with your desired cid</code>

Dans cette requête modifiée, la colonne gid de l'instruction INSERT recevra toujours la valeur 1, quelle que soit la valeur gid dans la ligne sélectionnée de la table courses. Vous pouvez remplacer 1 par n'importe quelle constante ou expression appropriée qui donne une valeur compatible avec le type de données de la colonne gid. La clause WHERE filtre les données sources, garantissant que seule la ligne pertinente est utilisée pour l'insertion.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn