"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo actualizar valores NULL en una tabla con datos de filas que comparten el mismo nombre?

¿Cómo actualizar valores NULL en una tabla con datos de filas que comparten el mismo nombre?

Publicado el 2024-11-18
Navegar:877

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

Actualización de filas con datos de hermanos de la misma tabla

Imagine una tabla con una estructura similar esto:

IDNOMBREVALOR
1PruebaVALOR1
2Prueba2VALOR2
1Prueba2NULL
4PruebaNULL
1Prueba3VALUE3

Su La tarea es completar las celdas NULL "VALUE" con datos de otras filas que llevan el mismo "NOMBRE" (es decir, "Prueba" y "Prueba2" deben heredar valores de sus predecesores). El resultado deseado es:

1PruebaVALOR12Prueba2VALOR21Prueba2VALOR24PruebaVALOR11Prueba3VALOR3
IDNOMBREVALOR

El El desafío radica en hacer referencia a filas dentro de la misma tabla que comparten un valor de "NOMBRE" específico. La solución implica el uso de una declaración 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
UPDATE data_table t, (SELECT DISTINCT ID, NAME, VALUE DE tabla_datos DONDE EL VALOR NO ES NULO Y VALOR != '') t1 ESTABLECER t.VALOR = t1.VALOR DONDE t.ID = t1.ID AND t.NAME = t1.NAME

En esta declaración, la subconsulta (T1) extrae filas distintas con valores "VALUE" no NULL y no vacíos. La consulta principal (t) luego se une a esta subconsulta en los campos "ID" y "NOMBRE" para identificar las filas que se actualizarán. Como resultado, las celdas "VALOR" vacías se completan con los valores correspondientes de las filas no vacías con el mismo valor "NOMBRE".

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3