MySQL获取距离当前日期最近的记录
高洛峰
高洛峰 2017-04-17 14:25:46
[MySQL讨论组]

比如有一张表,结构如下:
表名叫USER:
UUID USERNAME PASSWORD CREATEDATE

现在需要获取CREATEDATE距离现在最近的那些数据。
比如表里的CREATEDATE值有2014-10-11、2013-02-10、2015-09-18、2016-03-04
现在需要把距离现在最新日期的那些日期(例子中是2016-03-04)查出来。
可能我的例子举得不好,说白了,就是查找最新的记录,就拿上面的例子来说,其实会有很多2016-03-04的记录,要把这些都查出来。

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回复(5)
黄舟

用子查询吧,
select * from user where date = (select date from user order by date desc limit 1)

ringa_lee

没理解错的话是 order by 现在的时间戳 - 数据库里存储的时间戳 asc?

order by UNIX_TIMESTAMP() - `CREATEDATE` asc
PHP中文网

完整的sql应该是这样的,对于CREATEDATE 进行降序排序

select * from USER order by CREATEDATE ASC

如果之要查询最近的那个日期的所有记录,sql语句如下:

select * from user inner join (select max(CREATEDATE) as C from user) A on user.CREATEDATE=A.C;
PHPz

对你要查询的字段 asc

怪我咯
select
    * 
from
    user
where
    exists(
        select 1 from (select max(CREATEDATE) as CREATEDATE from user) a
        where a.CREATEDATE=user.CREATEDATE
    )
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号