Maison  >  Article  >  base de données  >  Comment mettre à jour plusieurs enregistrements dans SQL sur la base d'une seule modification d'enregistrement ?

Comment mettre à jour plusieurs enregistrements dans SQL sur la base d'une seule modification d'enregistrement ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-06 17:34:02124parcourir

How to Update Multiple Records in SQL Based on a Single Record Change?

Modification de plusieurs enregistrements en fonction d'une modification d'un seul enregistrement dans SQL

Question :

Comment mettre à jour les positions de plusieurs enregistrements dans une table en fonction du changement de position d'un seul enregistrement ?

Solution :

Pour résoudre ce problème, une requête complexe qui modifie plusieurs enregistrements peut être nécessaire. Cependant, avec un simple ajustement de la structure des données, nous pouvons simplifier le processus et l'accomplir avec une seule requête qui modifie uniquement l'enregistrement souhaité.

Dans l'exemple fourni, la table contient un champ « Position » pour commander les éléments dans une liste identifiée par « ListID ». Déplacer un élément (par exemple, "Poires" avant "Chips") implique de définir sa position sur la position souhaitée et d'ajuster les positions de tous les éléments entre les deux.

Notre objectif est de réaliser une seule requête sans compter sur traitement supplémentaire ou requêtes multiples.

Par la suite, nous pouvons utiliser la requête suivante :

<code class="sql">UPDATE my_table SET position = 15 WHERE listId=1 AND name = 'Pears';</code>

Supposons qu'à l'avenir, des espaces apparaissent entre les articles en raison de réorganisations répétées. Pour résoudre ce problème, nous pouvons exécuter périodiquement la requête suivante :

<code class="sql">UPDATE my_table SET position = position * 10;</code>

En multipliant les valeurs de position par 10, nous introduisons suffisamment d'écarts pour prendre en compte les ajustements futurs sans perdre les informations de commande.

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!

Déclaration:
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