Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Utrzymywanie/aktualizowanie kolejności rekordów w mysql

Czy coś takiego to zrobi?

UPDATE items 
SET position = CASE position 
  WHEN $oldpos THEN $newpos 
  ELSE position + SIGN($oldpos-$newpos)
 END
WHERE position BETWEEN LEAST( $newpos, $oldpos ) 
                AND GREATEST( $newpos, $oldpos );

Testowałem to kilka razy i wydaje się, że działa.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Automatyczne usuwanie wygasłych wierszy danych w MySQL

  2. Pobieranie i wyświetlanie danych dla każdego zarejestrowanego użytkownika w PHP za pomocą PDO

  3. przechowuj dane w tabeli według rosnących identyfikatorów

  4. Mysql wybierz do aktualizacji - nie blokuje docelowych wierszy. Jak mogę się upewnić, że tak?

  5. Błąd składni w SQL utwórz tabelę