sql >> Databasteknik >  >> RDS >> Mysql

Hur får man RANDOM-poster från varje kategori i MySQL?

Ja, du kan göra detta genom att räkna upp raderna och sedan hämta de tre översta:

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. Hur man filtrerar in ett till många förhållande med android room db

  2. #1221 - Felaktig användning av UPDATE och ORDER BY

  3. Skäl att uppgradera till SQL Server 2017

  4. Vad är anslutningssträngen för MySQL JDBC-drivrutinen?