"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como reordenar registros em uma tabela com uma única consulta SQL?

Como reordenar registros em uma tabela com uma única consulta SQL?

Publicado em 2024-11-22
Navegar:755

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

Reordenando registros com uma única consulta SQL

Em uma tabela de itens alimentares com um campo "Posição" para ordenar sua aparência, um único A consulta SQL pode atualizar vários registros com base em uma alteração em um único registro. Isso é especialmente útil para reordenar itens em uma lista específica.

Suponha que temos uma tabela como isto:

idlistIDnomeposição
1 1queijo0
21chips1
31bacon2
41maçãs3
51peras4
61torta 5

Para mover as peras antes das fichas, podemos incrementar a posição de todos os itens entre elas em 1.

No entanto, a maioria das soluções envolve múltiplas consultas, o que pode ser ineficiente. Em vez disso, uma única consulta pode ser usada para reordenar os 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 garante que as peras se movam para a posição 1 e todos os itens entre as peras e as batatas fritas sejam incrementados de acordo.

Para reordenar qualquer item, simplesmente substitua 'peras' pelo nome do item a ser movido e ajuste a diferença conforme necessário.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3