Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Cập nhật cột chỉ mục sắp xếp để di chuyển các mục

Bạn sẽ có thể thực hiện việc này trong một truy vấn:một cái gì đó dọc theo các dòng của UPDATE foo SET sort_index = sort_index + 1 WHERE bar_id == b AND sort_index < s1 AND sort_index >= s2 , trong đó bbar_id của hàng sẽ được di chuyển, s1sort_index hiện tại của hàng đó và s2sort_index bạn muốn chuyển nó đến. Sau đó, bạn chỉ cần thay đổi sort_index của hàng.

Bạn có thể muốn thực hiện hai truy vấn trong một giao dịch. Ngoài ra, nó có thể tăng tốc độ nếu bạn tạo chỉ mục trên sort_index bằng cách sử dụng một cái gì đó như CREATE INDEX foo_index ON foo (sort_index) .

(Nhân tiện, ở đây tôi giả sử rằng bạn không muốn sort_index trùng lặp các giá trị trong bar_id nhất định và thứ tự tương đối của các hàng không bao giờ được thay đổi ngoại trừ một cách rõ ràng. Nếu bạn không cần điều này, giải pháp thậm chí còn đơn giản hơn.)




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Định dạng dấu thời gian

  2. Tùy chọn không được hỗ trợ được cung cấp cho mysql_options ()

  3. Magento:Thêm thuộc tính sản phẩm bằng tập lệnh cài đặt mô-đun

  4. JPA @NamedQuery với bitwise AND (&) làm tiêu chí

  5. Tham gia bên trong giữa ba bảng trong mysql