mysql -- order by 排序的疑问

麻烦各位看看!!!

注意:id是自增长的

    >select * from order order by id desc,create_at asc

这句是不是表明create_at这个字段没起作用了?或者说,是不是,只要在id desc之后的字段排序都不起作用??

阅读 2.4k
4 个回答

ORDER BY子句后面列名的顺序确定优先级的。即查询结果首先以列id的降序顺序进行排序,而只有当列id出现相同的信息时,这些相同的信息再按create_at列的升序进行排序

如果你的ID是唯一的,那么在这种情况下确实是唯一的,像这种多重排序一般适用于有重复内容的,比如说有一群人,里面有重复的姓名,我们根据姓名,再根据年龄来排序,就是如下效果

李四 20
王五 22
张三 17
张三 18

不是的,首先对条件A id desc 排序,然后对满足条件A 之后的 条件B create_at asc 排序
例如结果:

id create_at 
3    4
2    1
2    3
2    5
1    1
1    3

id 自增
你都 1 2 3 4 5 6 7 了,后面的字段自然无法 排序了

错,当id值有重复时,会比较create_at的大小排序

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题