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

permintaan mysql PHP:Saya ingin item tertentu menjadi yang pertama dan kemudian mengurutkan item lainnya

Anda dapat memesan dengan salah satu dari berikut

order by owner <> 'Jan'
order by owner = 'Jan' desc
order by case when owner = 'Jan' then 0 else 1 end
order by if(owner = 'Jan',0,1)

owner = 'Jan' menghasilkan 1 untuk True dan 0 untuk False , oleh karena itu mengapa desc

Selain itu, karena Anda tidak peduli dengan urutan baris lainnya kecuali empat baris pertama, sebaiknya Anda tetap melanjutkan baris Jan lainnya.

Coba ini:

SELECT 
    id, car_name, owner
FROM
    ((SELECT 
        0 x, t.*
    FROM
        your_table t
    ORDER BY owner <> 'Jan' , id
    LIMIT 4) UNION ALL (SELECT 
        *
    FROM
        (SELECT 
        1 x, t.*
    FROM
        your_table t
    ORDER BY owner <> 'Jan' , id
    LIMIT 4 , 1000) t
    ORDER BY id)) t
ORDER BY x , id;

Hanya berfungsi jika Jan memiliki 4 baris atau lebih.

SQLFiddle



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Periksa apakah ada baris menggunakan mysql_* API lama

  2. DataTables halaman 2 dari pagination tidak memanggil Magnific Popup

  3. ketersediaan ruang kueri mysql

  4. MySql:Tampilkan kolom tetapi kecualikan semuanya kecuali nama bidang

  5. Buat Situs Web dengan MySQL