Mysql
 sql >> Base de données >  >> RDS >> Mysql

Apporter des modifications à plusieurs enregistrements en fonction du changement d'un seul enregistrement avec SQL

Cela nécessite une requête complexe qui met à jour de nombreux enregistrements. Mais une petite modification de vos données peut changer les choses de sorte qu'il peut être réalisé avec une simple requête qui ne modifie qu'un seul enregistrement.

UPDATE my_table set position = position*10;

Autrefois, le langage de programmation BASIC sur de nombreux systèmes avait des numéros de ligne, il encourageait le code spagetti. Au lieu de fonctions, beaucoup de gens ont écrit GOTO line_number . De vrais problèmes survenaient si vous numérotiez les lignes de manière séquentielle et que vous deviez ajouter ou supprimer quelques lignes. Comment les gens l'ont-ils contourné ? En incrémentant les lignes par 10 ! C'est ce que nous faisons ici.

Donc, vous voulez que les poires soient le deuxième article ?

UPDATE my_table set position = 15 WHERE listId=1 AND name = 'Pears'

Vous craignez que les écarts entre les articles disparaissent après de multiples commandes ? N'ayez pas peur, faites simplement

UPDATE my_table set position = position*10;

De temps en temps.