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

Làm thế nào để tạo số thứ tự trong chế độ xem MySQL?

Về mặt kỹ thuật, bạn muốn một cái gì đó như thế này để mô phỏng xếp hạng hoặc số hàng ..

CREATE VIEW table_view 
AS
 SELECT
  *
  , (@row_number := @row_number + 1) AS row_number 
 FROM 
  table
 # Because a SQL table is a unsorted set off data ORDER BY is needed to get stabile ordered results.
 ORDER BY
  table.column ASC 
CROSS JOIN (SELECT @row_number := 0) AS init_user_var  

Bạn không thể sử dụng mã SQL này, bạn sẽ gặp lỗi bên dưới nếu bạn cố gắng tạo Chế độ xem với biến người dùng.

Error Code: 1351
View's SELECT contains a variable or parameter

Mã SQL bên dưới cũng giúp bạn có thể tạo ra row_number, điều này giả sử rằng bạn có một cột id được tạo bằng AUTO_INCREMENT. trên mọi bản ghi.

CREATE VIEW table_view
AS
 SELECT 
  *
  , (SELECT COUNT(*) + 1 FROM table inner WHERE inner.id < outer.id) AS row_number
 FROM 
   table outer

Chỉ MySQL 8.0+.

MySQL hỗ trợ các hàm cửa sổ nên không cần biến người dùng của MySQL để mô phỏng xếp hạng hoặc số hàng.

CREATE VIEW table_view 
AS
 SELECT
  *
 # Because a SQL table is a unsorted set off data ORDER BY is needed to get stabile ordered results.
  , (ROW_NUMBER() OVER (ORDER BY table.column ASC)) AS row_number
 FROM 
  table


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Id duy nhất của MySQL hoặc id kết hợp

  2. Tự động tạo Doctrine-Entity từ Table hiện có

  3. Symfony3 cách lưu trữ vai trò người dùng trong cơ sở dữ liệu

  4. Chèn ngày và giờ vào MySQL với ColdFusion

  5. Đặt hàng trước CONCAT_WS