现有一张用户数据表 user_table
里面有个 birthday
字段存放用户出生日期(如 1994-01-01、1996-07-1
)对应的时间戳数据
现在需要按照生日从近到远的排序来分页查找用户数据
比如今天 2016-07-28
的话,生日日期分别为 1995-07-30
、1993-11-31
、1997-08-29
、1995-07-27
的四个用户数据排序后就是 1995-07-30
、1997-08-29
、1993-11-31
、1995-07-27
SQL 语句怎么写才能满足这样的查询条件?
或者说我这存放生日的数据表结构应该修改成怎样才合适?
不考虑数据量和性能问题的简单做法:
加一个字段, 保存dayofyear的信息, 比如说这个字段名就叫day_of_year, 那么你插入语句是这样的:
查询的时候查询两次, 首先是查询 day_of_year 字段大于你的当前值的, 然后查询这个字段小于当前值的, 按 day_of_year 排序: