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

MySQL nhận vị trí hàng trong ORDER BY

Sử dụng cái này:

SELECT x.id, 
       x.position,
       x.name
  FROM (SELECT t.id,
               t.name,
               @rownum := @rownum + 1 AS position
          FROM TABLE t
          JOIN (SELECT @rownum := 0) r
      ORDER BY t.name) x
 WHERE x.name = 'Beta'

... để nhận giá trị vị trí duy nhất. Cái này:

SELECT t.id,
       (SELECT COUNT(*)
          FROM TABLE x
         WHERE x.name <= t.name) AS position,
       t.name    
  FROM TABLE t      
 WHERE t.name = 'Beta'

... sẽ cung cấp cho các mối quan hệ cùng một giá trị. IE:Nếu có hai giá trị ở vị trí thứ hai, chúng sẽ có vị trí là 2 khi truy vấn đầu tiên sẽ đưa ra vị trí là 2 cho một trong số chúng và 3 cho vị trí còn lại ...



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách hàm INSTR () hoạt động trong MySQL

  2. Quyền truy cập bị từ chối đối với người dùng 'root' @ 'localhost' trong khi cố gắng cấp đặc quyền. Làm cách nào để cấp đặc quyền?

  3. Giám sát cơ sở dữ liệu - Khắc phục sự cố Prometheus với SCUMM Dashboards

  4. Lỗi nghiêm trọng:Không có ngoại lệ 'mysqli_sql_exception' với thông báo 'Không có chỉ mục nào được sử dụng trong truy vấn / câu lệnh chuẩn bị'

  5. Tôi có thể tạo cơ sở dữ liệu bằng PDO trong PHP không?