Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

MySQL - PILIH hanya 2 baris dari setiap 'grup'

Anda memiliki ide yang tepat. Namun, MySQL tidak menjamin urutan evaluasi ekspresi. Plus, Anda memiliki group by position di subkueri.

Jadi saya rasa Anda mungkin ingin:

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. Kode kesalahan 1064, status SQL 42000:Anda memiliki kesalahan dalam sintaks SQL Anda;

  2. Melewati nama tabel sebagai parameter pernyataan yang disiapkan

  3. C# Pengkodean UTF8 Mysql

  4. Sanitasi dan validasi formulir php

  5. Jalankan kueri berdasarkan beberapa kotak centang