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.