Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Perbarui kolom indeks penyortiran untuk memindahkan item

Anda harus dapat melakukan ini dalam satu kueri:sesuatu di sepanjang baris UPDATE foo SET sort_index = sort_index + 1 WHERE bar_id == b AND sort_index < s1 AND sort_index >= s2 , di mana b adalah bar_id dari baris yang akan dipindahkan, s1 adalah sort_index current saat ini dari baris itu, dan s2 adalah sort_index Anda ingin memindahkannya ke. Kemudian, Anda tinggal mengubah sort_index baris.

Anda mungkin ingin melakukan dua kueri di dalam transaksi. Juga, mungkin mempercepat jika Anda membuat indeks pada sort_index menggunakan sesuatu seperti CREATE INDEX foo_index ON foo (sort_index) .

(Omong-omong, di sini saya berasumsi bahwa Anda tidak ingin duplikat sort_index nilai dalam bar_id yang diberikan , dan bahwa urutan relatif baris tidak boleh diubah kecuali secara eksplisit. Jika Anda tidak membutuhkan ini, solusinya bahkan lebih sederhana.)




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sintaks PHP MySQL untuk memasukkan tanggal, waktu

  2. 3 Skor Teratas - MySQL

  3. Membership.Provider untuk mysql di masalah asp.net

  4. Alat untuk mengimpor file CSV ke database MySQL?

  5. Mengapa _ (garis bawah) cocok - (tanda hubung)?