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!