2014-10-28 48 views
5

假設我有以下查詢:Mysql的ORDER BY特定值

SELECT id, name FROM table ORDER BY name 
  • 4,阿什利
  • 1,安娜
  • 2,大衛
  • 3,扎克

我會如何向訂單的前面扔一個特定的名稱,然後執行訂單的其餘部分,柯:

SELECT id, name FROM table ORDER BY name='david', name 
  • 1,大衛
  • 4,阿什利
  • 1,安娜
  • 3,扎克

回答

8

您是幾乎完全沒有。你只需要desc

SELECT id, name 
FROM table 
ORDER BY (name = 'david') DESC, name; 

的MySQL把布爾爲整數,真正是 「1」 和虛假是 「0」。所以,當它是真的,價值是一個「1」。首先,你需要按降序排序。