2010-08-10 28 views
0

看看這個簡單的查詢現在MySQL中有沒有辦法選擇返回行的開始和結束的順序?

SELECT id FROM users 

,說我想有用戶id小號訂購4,5,7,8,那麼我不關心中間,最後我想在最後的是55,56,58

那麼返回的行會是這樣的(\娜新行)

4 // explicitly chose these as the start rows 
5 // " " 
7 // " " 
8 // " " 
44 // these just come in any order (order not important) 
23 // " " 
10 // " " 
55 // explicitly chose these as the end rows 
56 // " " 
58 // " " 

如何修改上面的查詢做到這一點?由於

回答

1

用途:

SELECT u.id 
    FROM USERS u 
ORDER BY CASE id 
      WHEN 4 THEN 1 
      WHEN 5 THEN 2 
      WHEN 7 THEN 3 
      WHEN 8 THEN 4 
      WHEN 55 THEN 100000 
      WHEN 56 THEN 100001 
      WHEN 58 THEN 100002 
      ELSE id 
     END ASC 

目前已設置的實際值之外的值來獲得55/56/58,以便在年底。

+0

聰明!你真的瞭解你的SQL OMG小馬!謝謝... – alex 2010-08-10 04:09:32

0

最好在您的表格中引入一個訂單字段,而不是使用黑客或任何硬編碼的東西。

+0

我同意,但這個例子很糟糕。 – alex 2010-08-10 03:54:34

相關問題