如何在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
。