Saya memiliki tabel dengan 3 kolom:
id | name | priority
--------------------
1 | core | 10
2 | core | 9
3 | other | 8
4 | board | 7
5 | board | 6
6 | core | 4
Saya ingin memesan set hasil menggunakan priority
tetapi pertama-tama baris yang memiliki name=core
bahkan jika memiliki prioritas lebih rendah. Hasilnya akan terlihat seperti ini
id | name | priority
--------------------
6 | core | 4
2 | core | 9
1 | core | 10
5 | board | 6
4 | board | 7
3 | other | 8
sumber
Umumnya bisa Anda lakukan
select * from your_table order by case when name = 'core' then 1 else 2 end, priority
Apalagi di MySQL juga bisa Anda lakukan
select * from your_table order by name <> 'core', priority
Karena hasil perbandingan di MySQL adalah
0
atau1
dan Anda dapat mengurutkan berdasarkan hasil itu.sumber
1
dan2
artinya disini?1
dan2
hanya 2 angka yang saya gunakan untuk mengurutkan data. Bisa jadi3
dan4
atau sesuatu yang lain.%
diWHERE
klausa? Suka. . . WHERE name LIKE '%sth%' . . .
? stackoverflow.com/questions/41303379/…Salah satu cara untuk memberi preferensi pada baris tertentu adalah dengan menambahkan angka besar ke prioritasnya. Anda dapat melakukan ini dengan
CASE
pernyataan:select id, name, priority from mytable order by priority + CASE WHEN name='core' THEN 1000 ELSE 0 END desc
Demo: http://www.sqlfiddle.com/#!2/753ee/1
sumber
Ini berfungsi untuk saya menggunakan Postgres 9+:
SELECT * FROM your_table ORDER BY name = 'core' DESC, priority DESC
sumber
Salah satu caranya adalah ini:
select id, name, priority from table a order by case when name='core' then -1 else priority end asc, priority asc
sumber
core
baris?SELECT * FROM cars_new WHERE status = '1' and car_hide !='1' and cname IN ('Executive Car','Saloon','MPV+','MPV5') ORDER BY FIELD(cname, 'Executive Car', 'Saloon','MPV+','mpv5')
sumber
melakukan hal ini:
SELECT * FROM table ORDER BY column `name`+0 ASC
Menambahkan +0 berarti:
menjadi :
sumber
priority
, saya tidak dapat mengatakan apakah itu harus menjadi bagian dari solusi lengkap.)Gunakan ini:
SELECT * FROM tablename ORDER BY priority desc, FIELD(name, "core")
sumber