Mam tabelę z powiedzeniem 20 wierszy, każdy z numerem dla kolejności wyświetlania (1-20).Aktualizowanie kolejności wyświetlania wielu wierszy MySQL w jednym lub kilku zapytaniach
SELECT * FROM `mytable` ORDER BY `display_order` DESC;
W obszarze administracyjnym można przeciągnąć wiersze dookoła lub wpisać nowy numer ręcznie dla każdego wiersza.
Z pewnością nie jest dobrze przechodzić przez zapytanie UPDATE dla każdego wiersza, co jest alternatywą w jednym lub kilku zapytaniach odpowiednich do aktualizacji jednej komórki w 20 wierszach lub nawet więcej, 50-200 +?
Edit: wiele dobrych odpowiedzi i pomysłów. Mogę rozwinąć pomysły, które do tej pory rozważałem:
Jeden ciąg tablicowy: Mogę mieć kolejność w łańcuchu z unikalnymi identyfikatorami wierszy w żądanej kolejności - np. Wiersze 1,9,2, 6,23. Gdy zamówienie jest aktualizowana, ukryty aktualizacje polowe z JavaScript i dodaje, że w bazie danych lub pliku tekstowym po zakończeniu:
UPDATE `my_dispaly_order_table` SET `display_order`='1,9,2,6,23';
Aktualizacja każdy wiersz indywidualnie: To jest to, co starałem się uniknąć, ale to byłoby być zmieniane jedynie bardzo rzadko więc 20-30 połączenia w jedno trafienie raz na tydzień lub miesiąc nie może być problemem, więc po prostu wywołanie update na każdym rzędzie jest to, co zwykle zrobić:
UPDATE `mytable` SET `display_order`='1' WHERE `rowId` = 1;
UPDATE `mytable` SET `display_order`='2' WHERE `rowId` = 9;
UPDATE `mytable` SET `display_order`='3' WHERE `rowId` = 2;
UPDATE `mytable` SET `display_order`='4' WHERE `rowId` = 6;
UPDATE `mytable` SET `display_order`='5' WHERE `rowId` = 23;
jest to związane lista problem. może sugeruje zmianę schematu. – Randy