Maison > base de données > tutoriel mysql > le corps du texte

Comment puis-je réorganiser efficacement plusieurs enregistrements sur la base d'une seule mise à jour dans SQL ?

Mary-Kate Olsen
Libérer: 2024-11-06 12:54:03
original
932 Les gens l'ont consulté

How Can I Efficiently Rearrange Multiple Records Based on a Single Update in SQL?

Apporter des modifications à plusieurs enregistrements sur la base d'une mise à jour d'un seul enregistrement avec SQL

Dans une table de base de données contenant une liste d'aliments avec un champ "Position" représentant leur commande sur la liste, il est souvent nécessaire de réorganiser leur ordre en fonction des modifications apportées à un seul enregistrement. La requête fournie par l'affiche originale implique un processus fastidieux en plusieurs étapes impliquant l'extraction de données, la manipulation en JavaScript et plusieurs mises à jour de bases de données.

Cependant, une approche plus efficace qui résout le problème avec une seule requête est :

<code class="sql">UPDATE my_table SET position = position * 10;</code>
Copier après la connexion

Cette requête multiplie la position de tous les enregistrements dans la table par 10, créant ainsi de grands écarts entre les positions. Par la suite, une simple mise à jour de l'enregistrement cible pour déplacer "Poires" vers la position souhaitée peut être facilement réalisée avec la requête suivante :

<code class="sql">UPDATE my_table SET position = 15 WHERE listId=1 AND name = 'Pears';</code>
Copier après la connexion

Pour répondre à toute préoccupation concernant la disparition des écarts au fil du temps en raison d'une réorganisation ultérieure, la requête fournie précédemment peut être exécutée périodiquement pour mettre à jour les positions et maintenir l'espacement nécessaire. Grâce à cette approche efficace à requête unique, réorganiser l'ordre des aliments devient une tâche simple.

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