2014-02-22 98 views
0

ORDER BY CASE WHEN DATE_FORMAT(CURDATE(),'%w') = 0 THEN 'day DESC' ELSE 'day ASC' END, orderby ASC案例的目的是通過忽略

很簡單的查詢,總是排序一天,如果今天是星期天則降序排序,如果不是那麼升序排列。但它總是被忽略,只能根據orderby字段排序。

+1

你就錯了。您不能在語句內指定排序方向。 – Kermit

回答

2

你想要的東西,如:

ORDER BY 
    CASE 
    WHEN DATE_FORMAT(CURDATE(),'%w') = 0 
     THEN `day` 
    END DESC, 
    CASE 
    WHEN DATE_FORMAT(CURDATE(),'%w') <> 0 
     THEN `day` 
    END ASC, 
    `orderby` ASC