Nehmen wir an, die Schüler können in der Warteschlange für mehrere verschiedene Kurse sein. Jeder Kurs hat seine eigene Warteschlange mit Studenten.Ändern Sie multiple Werte in einer Tabelle mit einer einzigen Aktualisierungsabfrage.
Die Tabelle wurde folgende: StudentID (int), courseid (int), Accepted (Bool) und QueueIndex (int). Jede studentID
hat QueueIndex
für jede courseID
.
Wie aktualisiere ich alle QueueIndex
für alle Warteschlangen, sobald ein Schüler z. entfernt wo er hingehört?
z. der Schüler A bekam QueueIndex
5 in Kurs A und QueueIndex
3 in Course B. möchte ich jeden anderen Schüler über diesem QueueIndex
und CourseID
eine verminderte --value erhalten, so dass der nächste Schüler in Kurs A, die QueueIndex
6 hatte haben QueueIndex
5 statt usw. .
UPDATE [Register]
SET QueueIndex = QueueIndex -1
WHERE QueueIndex > 0
AND (decrease QueueIndex for every CourseID where that specific StudentID left the queue);
Ist dies mit einer einzigen Abfrage möglich?