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

MySQL - CHỌN chỉ 2 hàng từ mỗi 'nhóm'

Bạn có ý tưởng đúng. Tuy nhiên, MySQL không đảm bảo thứ tự đánh giá các biểu thức. Ngoài ra, bạn có group by position trong truy vấn con.

Vì vậy, tôi nghĩ bạn có thể muốn:

SELECT . . .
FROM (SELECT name, surname, position, value, points, 
             (@num := if(@type = position, @num + 1,
                         if(@type := position, 1, 1)
                        )
             ) AS row_number
      FROM players p CROSS JOIN
           (SELECT @num := 0, @type := '') params
      WHERE (name LIKE '%$searchphrase%' OR surname LIKE '%$searchphrase%') AND
            value >= '$minvalue' AND value <= '$maxvalue'
      ORDER BY position
     )  x
WHERE x.row_number <= 2



  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 chỉ nhập một hàng duy nhất từ ​​CSV

  2. MySQL:Cách nhận các thay đổi của CẬP NHẬT lần trước

  3. Tại sao không có khóa nào được sử dụng trong GIẢI THÍCH này?

  4. Nhận tên cột có giá trị lớn nhất trong một hàng sql

  5. Trường văn bản duy nhất trong MySQL và php