我想從一個特定的MySQL表中選擇數據。 爲簡單起見,我們假設有3列:在MYSQL中自定義排序
ID Priority ValidDate
1 5 2016-12-12
2 5 2016-03-11
3 0 null
4 0 null
5 0 2016-08-01
6 6 2016-12-31
我想是到輸出如下排序:
如果ValidDate> CURDATE(),顯示它的一階由ValidDate降序(優先無論)
如果ValidDate爲空或ValidDate < CURDATE(),以便通過優先ASC
因此,對於上面的表格,輸出應該是這樣的:
ID Priority ValidDate
6 6 2016-12-31
1 5 2016-12-12
5 0 2016-08-01
3 0 null
4 0 null
2 5 2016-12-31
我嘗試此查詢:
SELECT id, image, campaignid, priority, sponsored FROM au_hpbanner order by (sponsored > curdate()) desc, (case when sponsored < curdate() then priority end) asc;
但因爲行ID 2 ID 5雖然之後仍然來了它不工作它應該在底部。 感謝您的幫助!