2014-02-20 123 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 
相关问题