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

Câu lệnh cập nhật MYSQL để chèn lấp xếp hạng theo từng id

Đó có thể không phải là cách đẹp nhất, nhưng bạn có thể dễ dàng làm những việc như:

set @rank = 0;
set @prev = 0;

select id, score, IF (id = @prev, @rank := @rank + 1, @rank := 1), @prev := id
from scores
order by id, score;

Tôi đoán bạn cũng muốn báo cáo cập nhật và đó sẽ là:

set @rank = 0;
set @prev = 0;

update scores
set rank = IF(id = @prev, @rank := @rank + 1, @rank := 1),
id = (@prev := id)
order by id, score;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để sử dụng mã hóa dữ liệu minh bạch với MySQL?

  2. MySQL:Làm thế nào để truy vấn cha-con?

  3. Lệnh gọi UPSERT chuẩn SQL

  4. truy vấn wordpress - hai sự kiện tiếp theo theo ngày siêu dữ liệu

  5. Tại sao SQLSTATE [HY000]:Lỗi chung?