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