"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment mettre à jour les valeurs NULL dans une table avec des données de lignes partageant le même nom ?

Comment mettre à jour les valeurs NULL dans une table avec des données de lignes partageant le même nom ?

Publié le 2024-11-18
Parcourir:525

How to Update NULL Values in a Table with Data from Rows Sharing the Same Name?

Mise à jour des lignes avec les données des frères et sœurs de la même table

Imaginez une table avec une structure ressemblant à ceci :

IDNOMVALEUR
1TestVALUE1
2Test2VALUE2
1Test2NULL
4TestNULL
1Test3VALUE3

Votre tâche consiste à remplir les cellules NULL "VALUE" avec les données d'autres lignes portant le même "NOM" (c'est-à-dire que "Test" et "Test2" doivent hériter des valeurs de leurs prédécesseurs). Le résultat souhaité est :

IDNOMVALUE
1TestVALUE1
2Test2VALUE2
1Test2VALUE2
4TestVALUE1
1Test3VALUE3

Le défi réside dans le référencement des lignes au sein du même table qui partage une valeur "NOM" spécifique. La solution consiste à utiliser une instruction JOIN :

UPDATE data_table t, (SELECT DISTINCT ID, NAME, VALUE
                        FROM data_table
                       WHERE VALUE IS NOT NULL AND VALUE != '') t1
   SET t.VALUE = t1.VALUE
 WHERE t.ID = t1.ID
   AND t.NAME = t1.NAME

Dans cette instruction, la sous-requête (T1) extrait des lignes distinctes avec des valeurs "VALUE" non NULL et non vides. La requête principale (t) rejoint ensuite cette sous-requête sur les champs "ID" et "NAME" pour identifier les lignes à mettre à jour. Par conséquent, les cellules vides « VALEUR » sont remplies avec les valeurs correspondantes des lignes non vides avec la même valeur « NOM ».

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3