Mysql
 sql >> база данни >  >> RDS >> Mysql

MySQL - Поръчайте заявка и покажете един произволен ред в горната част

Използвайте order by . Ето един метод:

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;

Това използва подзаявката, за да идентифицира единия ред, който да остане в горната част. След това използва тази информация за подреждане във външната заявка.

Ако вашите редове имат уникален идентификатор, можете също да направите:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Таблицата на базата данни не съществува според компилатора на android studio

  2. Създаване на MySQL SET от низ

  3. Автоматично зареждане на резултатите, извличащи едни и същи резултати отново и отново

  4. Как мога да видя съдържанието на подготвено изявление?

  5. BIGINT mysql производителност в сравнение с INT