Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

MySQL - Pesan kueri dan tampilkan satu baris acak di atas

Gunakan order by . Ini salah satu caranya:

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;

Ini menggunakan subquery untuk mengidentifikasi satu baris agar tetap di atas. Kemudian menggunakan informasi ini untuk memesan di kueri luar.

Jika baris Anda memiliki pengenal unik, Anda juga dapat melakukan:

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. Spark SQL dan MySQL- SaveMode.Overwrite tidak memasukkan data yang dimodifikasi

  2. Deteksi acara Tidur dan Bangun OS di Java

  3. LAST_INSERT_ID() selalu mengembalikan 0 (RMySQL) - masalah koneksi terpisah

  4. bagaimana cara menggunakan suka dengan bergabung di sql?

  5. UTC_TIMESTAMP() Contoh – MySQL