sql >> データベース >  >> RDS >> Mysql

MySQL-各「グループ」から2行のみを選択します

    あなたは正しい考えを持っています。ただし、MySQLは式の評価の順序を保証しません。さらに、group by positionがあります サブクエリで。

    だから私はあなたが望むかもしれないと思います:

    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. 相関関係を見つける非常に遅いMySQLクエリを最適化する方法

    2. MySQLWITH句

    3. クエリでテーブル名を動的にする方法はありますか?

    4. 外部phpファイルJoomlaにJfactoryクラスを含める