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

Mysql - Làm cách nào để sắp xếp các kết quả theo các hàng xen kẽ (1,2,3, 1, 2, 3, 1, 2, 3,), có được không?

Sử dụng:

SELECT x.client_id, 
       x.project_id,
       x.project_name
  FROM (SELECT t.client_id,
               t.project_id,
               t.project_name,
               CASE
                 WHEN @client_id != t.client_id THEN @rownum := 0
                 WHEN @client_id = t.client_id THEN @rownum := @rownum + 1
                 ELSE @rownum 
               END AS rank,
               @client_id := t.client_id
          FROM TABLE t,
               (SELECT @rownum := 0, @client_id
      ORDER BY t.client_id) r) x
ORDER BY x.rank, x.client_id

MySQL không có bất kỳ chức năng xếp hạng nào, nhưng may mắn là bạn có thể sử dụng các biến. Chìa khóa là đặt lại giá trị @rownum khi client_id không khớp với client_id trước đó - ORDER BY trong truy vấn con là để đảm bảo rằng các client là theo thứ tự.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ràng buộc duy nhất kiểm tra hai cột trong MySQL

  2. Làm thế nào để kéo tất cả id sản phẩm, giao diện, tên sản phẩm, mô tả trong magento chỉ bằng cách sử dụng mysql?

  3. Lỗi nghiêm trọng có thể bắt được:Không thể chuyển đổi đối tượng của lớp mysqli_stmt thành chuỗi

  4. Lưu trữ ID dưới dạng các giá trị được phân tách bằng dấu phẩy

  5. Thứ tự các cột trong câu lệnh select có ảnh hưởng đến tốc độ truy vấn không?