2014-11-21 27 views
1

我有表MY_TABLEMySQL的隨機選擇查詢1日申請

id type info 
1 1 car 
2 1 bicycle 
3 1 train 
4 2 ketchup 
5 2 mustard 
6 2 soda 
7 3 flower 
8 3 tree 
9 3 grass 

我需要做出選擇查詢,以便結果出來像

type info 
1 car 
2 ketchup 
3 flower 

1 bicycle 
2 mustard 
3 tree 

1 train 
2 soda 
3 grass 

現在

會按類型數據
SELECT * from my_table ORDER BY type ASC 

按訂單類型111 222 333,我需要ty pe 123 123 123.

回答

2

MySQL沒有窗口函數,所以這比在其他數據庫中更加尷尬。

SELECT type, info 
FROM (
    SELECT @rank := IF([email protected], @rank+1, 1) AS rank, @type:=type AS type, info 
    FROM (SELECT @rank:=0, @type:=null) _init, my_table 
    ORDER BY type, id 
) t 
ORDER BY rank, type; 

SQL Fiddle

+0

KEWL它的工作。希望它更容易,但我可以忍受這一點。謝謝。 – 2014-11-21 02:08:21

+0

還有一件事,我不明白什麼是字符「噸」的? – 2014-11-21 02:14:07

+0

任何派生表子查詢都需要一個表別名。 – 2014-11-21 02:33:19