sql >> Database >  >> RDS >> Mysql

MySQL - Bestelquery en toon een willekeurige rij bovenaan

Gebruik order by . Hier is een methode:

select t.*
from (select t.*, (@rn := @rn + 1) as seqnum
      from tickets t cross join
           (select @rn := 0) params
      order by vip desc, rand()
     ) t
order by (seqnum = 1) desc, price asc;

Dit gebruikt de subquery om de ene rij te identificeren die bovenaan moet blijven. Vervolgens gebruikt het deze informatie voor het bestellen in de buitenste zoekopdracht.

Als uw rijen een unieke identificatie hebben, kunt u ook het volgende doen:

select t.*
from tickets t cross join
     (select id from tickets where vip = 1 order by rand() limit 1) as t1
order by (t.id = t1.id) desc, price asc;



  1. ClusterControl - Geavanceerd back-upbeheer - PostgreSQL

  2. mysql_data_seek pdo-equivalent

  3. Hoe de minimale waarde van een kolom in SQL te vinden

  4. 3 gebieden die baat zullen hebben bij het gebruik van een SQL Server Performance Monitoring Tool