我有一张表,其中有三个字段,数据类型为date
,int
和bigint
。MySQL按不同排序顺序对多列进行排序
我想使用所有这三列对我的选择查询进行排序。我想按降序排列它们。例如:
Select * From mytbl
order by date desc,intnum desc, bigintnum desc;
是否有可能从所有三列的最大值开始获得结果。 像最新的日期,最高的intnum和最高的bigintnum。
我有一张表,其中有三个字段,数据类型为date
,int
和bigint
。MySQL按不同排序顺序对多列进行排序
我想使用所有这三列对我的选择查询进行排序。我想按降序排列它们。例如:
Select * From mytbl
order by date desc,intnum desc, bigintnum desc;
是否有可能从所有三列的最大值开始获得结果。 像最新的日期,最高的intnum和最高的bigintnum。
没有
你的查询确实是拿到max date
,其次是max date
的max intnum
随后的max date
换句话说,max intnum
的max bigintnum
,你的查询将不会返回最大所有三列的价值
它按日期先订购,然后是intnum,然后是bigintnum 结果会是这样的
2011-07-20 12 14
2011-07-20 12 13
2011-07-20 11 16
2011-07-20 10 12
2011-07-19 20 15
2011-07-18 60 30
2011-07-18 50 14
不可能从所有三列中的最大值开始获得结果。像最新的日期,最高的intnum和最高的bigintnum。
Select * From mytbl
order by date desc,intnum desc, bigintnum desc;
正如你所知道的ORDER BY呢,如果你by子句必须按顺序多列,它会通过日期递减一级,然后在第一次约会就通过INTNUM说明通过BIGINTNUM顺序,然后顺序。
您提供的查询看起来有效。 PS:mysql dba询问sql基础问题看起来很有趣;-) – zerkms
@Devjosh:那又如何?它**有可能**得到所有字段后代排序的结果集,从每个列的最高值开始。 – zerkms
@zerkms,MySQL数据库管理员:是的,这是可能的:),我们的同事发布的问题没有错 – Devjosh