"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 reordenar registros en una tabla con una única consulta SQL?

¿Cómo reordenar registros en una tabla con una única consulta SQL?

Publicado el 2024-11-22
Navegar:724

How to Reorder Records in a Table with a Single SQL Query?

Reordenación de registros con una única consulta SQL

En una tabla de alimentos con un campo "Posición" para ordenar su apariencia, un único La consulta SQL puede actualizar varios registros en función de un cambio en un solo registro. Esto es especialmente útil para reordenar elementos dentro de una lista específica.

Supongamos que tenemos una tabla como esto:

idID de listanombreposición
1 1queso0
21chips1
31tocino2
41manzanas3
51peras4
61tarta 5

Para mover peras antes que chips, podemos incrementar la posición de todos los elementos entre ellos en 1.

Sin embargo, la mayoría de las soluciones implican múltiples consultas, lo que puede ser ineficiente. En su lugar, se puede utilizar una única consulta para reordenar los registros:

UPDATE my_table
SET position = position   CASE
    WHEN name = 'pears' THEN -3
    ELSE 0
    END
WHERE listID = 1 AND position BETWEEN 1 AND 4;

Esta fórmula garantiza que las peras se muevan a la posición 1 y que todos los elementos entre peras y chips se incrementen en consecuencia.

Para reordenar cualquier elemento, simplemente reemplace 'peras' con el nombre del elemento que se va a mover y ajuste la diferencia según sea necesario.

Ú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