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
343 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!

source:php.cn
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