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

MySQLランダム結果GroupByOrder By

    group by句にリストされていない列を選択リストにリストし、count()などの集計関数の対象にならないため、クエリはSQL標準に反します。 MySQLでは、特定のSQLモード設定でこの機能を使用できます。

    ただし、この機能が有効になっている場合でも、MySQLには制限があります。集計されていないフィールドから選択されたデータ

    したがって、group byを使用する代わりに、sortingとlimit句を使用して出力を制限します。

    select * from job
        where type = 1
        order by rand()
        limit 1
    

    また、MySQLはインデックスを使用せずに結果セット全体を最初にソートする必要があるため、このランダム選択方法は非常にリソースを消費することに注意してください。 order by rand()を使用せずに、テーブルからデータをランダムに選択する方法は他にもあります。 。



    1. Oracle MySQL、Percona Server、MariaDBの比較

    2. Rails 3、モデルのフィールドを文字列から日時タイプに変更

    3. M-M関係を強制するためのトリガー

    4. Windows10でPython3用のMySQLdbをインストールして使用するにはどうすればよいですか?