比如有一张表,结构如下:
表名叫USER:
UUID USERNAME PASSWORD CREATEDATE
现在需要获取CREATEDATE距离现在最近的那些数据。
比如表里的CREATEDATE值有-10-11、-02-10、-09-18、-03-04
现在需要把距离现在最新日期的那些日期(例子中是-03-04)查出来。
可能我的例子举得不好,说白了,就是查找最新的记录,就拿上面的例子来说,其实会有很多-03-04的记录,要把这些都查出来。
用子查询吧,
select * from user where date = (select date from user order by date desc limit 1)
没理解错的话是 order by 现在的时间戳 – 数据库里存储的时间戳 asc?
order by UNIX_TIMESTAMP() - `CREATEDATE` asc
完整的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;
对你要查询的字段 asc
select
*
from
user
where
exists(
select 1 from (select max(CREATEDATE) as CREATEDATE from user) a
where a.CREATEDATE=user.CREATEDATE
)