Maison > base de données > tutoriel mysql > Comment mettre à jour la valeur d'une colonne MySQL en fonction des données d'une autre table ?

Comment mettre à jour la valeur d'une colonne MySQL en fonction des données d'une autre table ?

DDD
Libérer: 2025-01-17 05:01:10
original
488 Les gens l'ont consulté

How to Update a MySQL Column's Value Based on Data from Another Table?

MySQL : Mettre à jour la valeur de la colonne en fonction des données d'une autre table

Question :

Supposons qu'il existe deux tables avec des structures similaires :

id name value
1 Joe 22
2 Derk 30

La tâche consiste à mettre à jour la colonne « valeur » du tableau B avec la valeur du tableau A en fonction de la valeur « nom » correspondante.

Solution :

Vous pouvez utiliser l'instruction SQL UPDATE avec une clause JOIN pour effectuer cette opération de mise à jour. Voici une requête possible :

UPDATE tableB
INNER JOIN tableA ON tableB.name = tableA.name
SET tableB.value = tableA.value;
Copier après la connexion

Cette requête mettra à jour la colonne « valeur » de toutes les lignes du tableau B qui correspondent au tableau A, en fonction de la colonne « nom ».

Mise à jour de la valeur dynamique :

Vous pouvez modifier la requête pour mettre à jour dynamiquement la table B.value en fonction des valeurs de la table A.value. Par exemple, la requête suivante ne met à jour la table B.value que si la table A.value est supérieure à 0 :

UPDATE tableB
INNER JOIN tableA ON tableB.name = tableA.name
SET tableB.value = IF(tableA.value > 0, tableA.value, tableB.value)
WHERE tableA.name = 'Joe';
Copier après la connexion

Dans cet exemple, la colonne « valeur » dans la ligne avec « nom » « Joe » dans le tableau B sera mise à jour avec la valeur du tableau A uniquement si la valeur du tableau A est supérieure à 0. Sinon, les valeurs existantes dans le tableau B resteront inchangées.

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 de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal