Rumah > Soal Jawab > teks badan
Menggunakan MariaDB, saya mempunyai pandangan yang memberikan maklumat termasuk tarikh acara dan sama ada jemputan itu diterima. Medan eventdate
是类型为 date
的事件日期。 accepted
是类型为 tinyint
ialah 0 jika jemputan ditolak, 1 jika jemputan diterima, jika tidak, ia lalai kepada NULL.
Saya ingin membangunkan pertanyaan yang mengisih mengikut eventdate
supaya nilai accepted
和 eventdate
排序,这样我的NULL值将出现在eventdate
顺序的最前面。然而,如果accepted
不为NULL,则希望按照eventdate
NULL
eventdate
. Walau bagaimanapun, jika diterima
bukan NULL
, anda mahu mengisih mengikuteventdate
.
从邀请视图中选择* ORDER BY已接受,eventdate
Pertanyaan semasa saya ialah:
accepted = NULL
Walau bagaimanapun, pertanyaan ini mengisih jadual supaya semua nilai berada di hadapan, semua 0
1
nilai berada di penghujung, seperti ini:eventname | eventdate | accepted --------------------------------- Event 1 | 2022-04-14 | NULL Event 2 | 2022-04-25 | NULL Event 3 | 2022-03-28 | 0 Event 4 | 2022-05-03 | 0 Event 5 | 2022-04-14 | 1 Event 6 | 2022-05-01 | 1🎜Saya berharap dapat hasil yang serupa dengan ini: 🎜
eventname | eventdate | accepted --------------------------------- Event 1 | 2022-04-14 | NULL Event 2 | 2022-04-25 | NULL Event 3 | 2022-03-28 | 0 Event 5 | 2022-04-14 | 1 Event 6 | 2022-05-01 | 1 Event 4 | 2022-05-03 | 0🎜
P粉2421267862023-09-16 09:12:10
Salah satu cara ialah menggunakan keadaan CASE untuk menyusun keputusan
SELECT * FROM invite_view ORDER BY CASE WHEN accepted IS NULL THEN accepted ELSE eventDate END
Hasil:
id | nama acara | eventdate | diterima |
---|---|---|---|
1 | Acara 1 | 2022-04-14 | null |
2 | Acara 2 | 2022-04-25 | null |
3 | Acara 3 | 2022-03-28 | 0 |
5 | Acara 5 | 2022-04-14 | 1 |
6 | Acara 6 | 2022-05-01 | 1 |
4 | Acara 4 | 2022-05-03 | 0 |