Maison > base de données > tutoriel mysql > 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 ?

Barbara Streisand
Libérer: 2024-11-12 19:43:02
original
409 Les gens l'ont consulté

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 :

ID NAME VALUE
1 Test VALUE1
2 Test2 VALUE2
1 Test2 NULL
4 Test NULL
1 Test3 VALUE3

Votre tâche consiste à remplir les cellules NULL "VALUE" avec des données provenant 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 le suivant :

ID NAME VALUE
1 Test VALUE1
2 Test2 VALUE2
1 Test2 VALUE2
4 Test VALUE1
1 Test3 VALUE3

Le défi réside dans le référencement des lignes d'un même tableau qui partagent 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
Copier après la connexion

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. En conséquence, les cellules vides « VALEUR » sont remplies avec les valeurs correspondantes des lignes non vides avec la même valeur « NOM ».

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