MySQL如何对时间戳字段按日期排序
需求:有一张域名浏览记录表,有字段warning浏览次数,字段updatetime创建时间,现在需要获取,按创建时间的降序,浏览量的降序,获取域名列表。就是说,同一天创建的域名,如果谁的浏览量大,谁就在前面,如下:
分析:因为本身updatetime是一个时间戳,所以我们可以在查询SELECT时候,新增一个日期字段 datatime,SQL查询如下:
SELECT id,`name`,warning,FROM_UNIXTIME(updatetime)as updatetime, FROM_UNIXTIME(updatetime,'%Y-%m-%d')as datatime FROM `pw_config_domain` ORDER BY datatime DESC,warning DESC;
最后结果如下,id15和17为同一天,虽然17后创建,但是15的浏览量更大,所以在前:
ps:如上做法,是通过查询SELECT时候,新增一个字段,所以对于大量的查询的时候,是无法使用索引的,所以。如果业务需求是面对大量查询,还是需要新建一个 updatetime 字段,用来存储创建日期。
-----END
影子是一个会撒谎的精灵,它在虚空中流浪和等待被发现之间;在存在与不存在之间....