2014-02-20 120 views
0

我有一個表,有一堆行,但只有三列,date,usernameposts如何根據MySQL中的兩列對行進行排序?

Username有用戶名,他們重複了很多。 Posts有一堆數字。 Date的日期以Y-m-D的格式發佈。

現在,當我運行SELECT * FROM table WHERE date = '2014-02-20',我收到了一堆的結果好壞參半,像這樣:

date      username     posts 
2014-02-20     user1      1 
2014-02-20     user2      2 
2014-02-20     user14      1 
2014-02-20     user3      1 
2014-02-20     user2      3 
2014-02-20     user2      4 
2014-02-20     user11      1 
2014-02-20     user1      2 
2014-02-20     user8      2 
2014-02-20     user9      3 
2014-02-20     user55      4 
2014-02-20     user5      3 

我想將它整理出來,以便它看起來就像這樣:

date      username     posts 
2014-02-20     user1      1 
2014-02-20     user1      2 
2014-02-20     user1      3 
2014-02-20     user1      4 
2014-02-20     user2      1 
2014-02-20     user2      2 
2014-02-20     user2      3 
2014-02-20     user2      4 
2014-02-20     user2      5 
2014-02-20     user2      6 
2014-02-20     user3      1 
2014-02-20     user3      2 

哪有我這樣做?

+0

謝謝你們!這就是訣竅! –

+0

這兩個答案都有問題。 'user10'在user1後面,'user2'在'user19'後面,等等.. –

回答

1

嘗試像

SELECT * FROM table WHERE date = '2014-02-20' ORDER BY username,posts ASC 
+0

我會給你最好的答案,因爲你在25秒內回答,謝謝。 –

+0

我認爲user55會在用戶6之前遇到這種情況 –

1
SELECT * FROM tablw WHERE date ='$something' ORDER BY username ASC, posts ASC 
+0

我認爲user55會在用戶6之前在這種情況下 –

+0

@PrasanthBendra正確,我做了這個,'user10'剛好在user1後面。 –

+0

用戶2禮儀之前? –

0

試試這個:

SELECT *,CONVERT(SUBSTRING(username, 5, 9),UNSIGNED INTEGER) AS userord FROM table WHERE date = '2014-02-20' ORDER BY userord ASC, posts ASC 
相關問題