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

MySQLのランダム行

    これにより、random()の繰り返し評価が回避されます。 集計中に、min(id)のように高速化する必要があります およびrandom() 一度だけ評価されます。

    SELECT u.* 
    FROM   users u
          ,(SELECT min(id) AS min_id, max(id) AS max_id FROM users) x
    WHERE  u.id > (floor((x.max_id - x.min_id + 1) * rand()) + x.min_id)
    LIMIT  1;
    


    1. ANSIJOINクエリと非ANSIJOINクエリのパフォーマンスは異なりますか?

    2. RubyonRailsを使用して複数の列にインデックスを付ける

    3. パラメータ化されたクエリPHP/MySQL

    4. MacでのOracleのJavaを理解する