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

MySQLの各カテゴリからランダムレコードを取得するにはどうすればよいですか?

    はい、これを行うには、行を列挙してから上位3つを取得します。

    select r.id, r.question, r.category
    from (select r.*,
                 (@rn := if(@c = category, @rn + 1,
                            if(@c := category, 1, 1)
                           )
                 ) as seqnum
          from `random` r cross join
               (select @rn := 0, @c := -1) params
          order by category, rand()
         ) r
    where seqnum <= 3;
    


    1. PHPPDOの複数選択クエリが一貫して最後の行セットを削除する

    2. 存在する場合はテーブルを変更し、存在しない場合は作成します

    3. SQL Serverのスカラー値関数が遅くなるのはなぜですか?

    4. Android-カーソルonMapReady(マーカー)