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

大きなテーブルでのMYSQLSELECTランダムORDERBYSCORE

    したがって、このようなものを取得するには、サブクエリを使用します。そうすれば、RAND()を外部クエリに配置するだけで、負担が大幅に軽減されます。

    あなたの質問から私が理解したことから、あなたは最高のスコアを持つテーブルから200人の男性が欲しいです...それは次のようになります:

    SELECT * 
    FROM table_name
    WHERE age = 'male'
    ORDER BY score DESC
    LIMIT 200
    

    5つの結果をランダム化すると、次のようになります。

    SELECT id, score, name, age, sex
    FROM
    (   SELECT * 
        FROM table_name
        WHERE age = 'male'
        ORDER BY score DESC
        LIMIT 200
    ) t -- could also be written `AS t` or anything else you would call it
    ORDER BY RAND()
    LIMIT 5
    


    1. 複数のユーザーにFiresbase通知を送信する

    2. SQLSELECTAND演算子

    3. sequelize、nodejsのwhere条件のように使用する方法

    4. Pythonで分数のある文字列をfloatに変換する方法