如何根据MySQL中的两列对行进行排序?
我有一个表,有一堆行,但只有三列,date
,username
和posts
。如何根据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
哪有我这样做?
尝试像
SELECT * FROM table WHERE date = '2014-02-20' ORDER BY username,posts ASC
我会给你最好的答案,因为你在25秒内回答,谢谢。 –
我认为user55会在用户6之前遇到这种情况 –
SELECT * FROM tablw WHERE date ='$something' ORDER BY username ASC, posts ASC
我认为user55会在用户6之前在这种情况下 –
@PrasanthBendra正确,我做了这个,'user10'刚好在user1后面。 –
用户2礼仪之前? –
试试这个:
SELECT *,CONVERT(SUBSTRING(username, 5, 9),UNSIGNED INTEGER) AS userord FROM table WHERE date = '2014-02-20' ORDER BY userord ASC, posts ASC
谢谢你们!这就是诀窍! –
这两个答案都有问题。 'user10'在user1后面,'user2'在'user19'后面,等等.. –