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

Comment mettre à jour les données d'une table MySQL en fonction des valeurs d'une autre table ?

Barbara Streisand
Barbara Streisandoriginal
2025-01-17 04:47:09852parcourir

How to Update MySQL Table Data Based on Another Table's Values?

Mettre à jour les données de la table MySQL en fonction des valeurs d'une autre table

Supposons que vous ayez deux tables avec une structure similaire, tableA et tableB :

id name value
1 Joe 22
2 Derk 30

La tâche consiste à copier la valeur de la colonne de valeur de la tableA dans la colonne de valeur de la tableB en fonction des valeurs de nom correspondantes dans les deux tables.

Pour ce faire, vous pouvez utiliser l'instruction MySQL UPDATE suivante :

<code class="language-sql">UPDATE tableB
INNER JOIN tableA ON tableB.name = tableA.name
SET tableB.value = tableA.value;</code>

Cette instruction effectue une opération INNER JOIN entre tableA et tableB en fonction de la colonne de nom et met à jour la colonne de valeur dans la tableB avec la valeur correspondante dans la tableA.

Mise à jour de la valeur dynamique basée sur la condition :

Si vous devez mettre à jour dynamiquement la colonne de valeur dans la tableB en fonction de la valeur dans la tableA, vous pouvez utiliser la méthode suivante :

<code class="language-sql">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';</code>

Ici, la fonction IF() vérifie si tableA.value est supérieur à 0. Si c'est vrai, définissez tableB.value sur la valeur de tableA.value ; sinon, conservez la valeur d'origine dans tableB.

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