为了账号安全,请及时绑定邮箱和手机立即绑定

mysql数据库怎么可以两个条件排序?

mysql数据库怎么可以两个条件排序?

炎炎设计 2019-04-03 10:01:23
select * from mysql order by time descselect * from mysql order by id desc我希望让time居先ID居后排列这样可以吗 select * from mysql order by time,id desc各位帮我解决下啊 谢谢了!
查看完整描述

2 回答

?
呼如林

TA贡献1798条经验 获得超3个赞

可以的,order by多个字段规则是这样的,用逗号分隔每一个字段,如果字段不指明排序方式,默认是增序。排序的方法是先按第一个字段排序,如果有相同的再按后续的字段依次排序。

举个例子 

按照c1排序的结果如上图,然后我们按照c1增序,c2降序排列,结果如下:

在数据库查询时,常常需要排序,而有时排序条件可能有多个。
  如数据库:
  a b
  1 103
  1 101
  2 201
  2 203
  1 102
  2 202
  排序后: a b
  1 103
  1 102
  1 101
  2 203
  2 202
  2 201
  语句:
  SELECT A.a , A.b FROM TABLE A ORDER BY A.a ASC , A.b DESC
  其中ASC连接多条排序,且与后一条查询之间有逗号隔开!



查看完整回答
反对 回复 2019-04-04
?
犯罪嫌疑人X

TA贡献2080条经验 获得超4个赞

今天又测试了一下,使用utf8字符集创建的表或者字段使用的是utf8字符集,中文的排序是不正确的,如果表和字段是gbk字符集,则可以正确的排序。
mysql> create table tt_character (name varchar(20)) default charset gbk;
Query OK, 0 rows affected (0.03 sec)

mysql> create table tt_character1 (name varchar(20)) default charset utf8;
Query OK, 0 rows affected (0.04 sec)

mysql> insert into tt_character values('兰州'),('安徽'),('江西');
Query OK, 3 rows affected (0.00 sec)
Records: 3 Duplicates: 0 Warnings: 0

mysql> insert into tt_character1 values('兰州'),('安徽'),('江西');
Query OK, 3 rows affected (0.00 sec)
Records: 3 Duplicates: 0 Warnings: 0

mysql> select * from tt_character1 order by name;
+------+
| name |
+------+
| 兰州 |
| 安徽 |
| 江西 |
+------+
3 rows in set (0.00 sec)

mysql> select * from tt_character order by name;
+------+
| name |
+------+
| 安徽 |
| 江西 |
| 兰州 |
+------+
3 rows in set (0.00 sec)




查看完整回答
反对 回复 2019-04-04
  • 2 回答
  • 0 关注
  • 612 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信