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

Xếp hạng hàng trong Chế độ xem MySQL

Sử dụng:

SELECT t.id,
       t.variety,
       (SELECT COUNT(*) FROM TABLE WHERE id < t.id) +1 AS NUM
  FROM TABLE t

Đây không phải là cách lý tưởng để thực hiện việc này, bởi vì truy vấn cho giá trị num sẽ thực thi cho mọi hàng được trả về. Ý tưởng tốt hơn là tạo NUMBERS bảng, với một cột duy nhất chứa một số bắt đầu từ một số tăng dần đến một số quá lớn, sau đó nối &tham chiếu đến NUMBERS bảng theo cách tương tự như ví dụ về biến sau đây.

Xếp hạng MySQL hoặc Thiếu Thứ hạng

Bạn có thể xác định một biến để có được chức năng số hàng psuedo, vì MySQL không có bất kỳ chức năng xếp hạng nào:

SELECT t.id,
       t.variety,
       @rownum := @rownum + 1 AS num
  FROM TABLE t,
       (SELECT @rownum := 0) r
  • SELECT @rownum := 0 xác định biến và đặt nó thành 0.
  • r là một truy vấn con / bí danh bảng, vì bạn sẽ gặp lỗi trong MySQL nếu bạn không xác định bí danh cho truy vấn con, ngay cả khi bạn không sử dụng nó.

Không thể sử dụng một biến trong chế độ xem MySQL

Nếu làm vậy, bạn sẽ gặp lỗi 1351 vì bạn không thể sử dụng một biến trong chế độ xem do thiết kế . hành vi của lỗi / tính năng được ghi lại tại đây .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysql trong xampp bắt đầu và dừng sau năm giây

  2. Ý nghĩa của các ký tự được trích dẫn dấu trọng âm (AKA backtick) trong MySQL là gì?

  3. Cách cấp quyền thực thi trên thủ tục được lưu trữ cụ thể cho người dùng

  4. Cách chọn giá trị tối thiểu duy nhất từ ​​nhiều bảng hơn

  5. Sử dụng node-mysql trong một hàm