如何在MySQL中基于两列对行进行排序?

如何在MySQL中基于两列对行进行排序?,mysql,sql,Mysql,Sql,我有一个表,它有很多行,但只有三列,date,username和posts Username有用户名,它们重复了很多次帖子有一组数字日期具有以Y-m-D格式发布的日期 现在,当我运行SELECT*fromtable WHERE date='2014-02-20'时,我得到了一系列混合结果,如下所示: date username posts 2014-02-20 user1

我有一个表,它有很多行,但只有三列,
date
username
posts

Username
有用户名,它们重复了很多次<代码>帖子有一组数字<代码>日期具有以
Y-m-D
格式发布的日期

现在,当我运行
SELECT*fromtable 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
我想把它整理一下,让它看起来像这样:

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
试试这个:

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
之后,依此类推..我会给你分配最好的答案,因为你只需25秒钟就回答了,谢谢.我想在这种情况下,user55会排在user6之前.我想在这种情况下,user55会排在user6之前case@PrasanthBendra对的我这样做了,
user10
紧跟在
user1
之后,在user2仪式之前?是的,但这两种情况都发生了,
按用户名排序,发布ASC
按用户名排序,发布ASC