mysql - 最近 4 个和即将到来的 4 个生日

标签 mysql jsp servlets

我的表“生日”由 friend 生日组成

1990-11-13
1990-11-17
1990-11-19
1990-11-21
1990-11-21

等等,其中所有年份都是虚拟的。我尝试通过此查询显示 friend 的生日,例如最近列表和即将到来的列表。

select concat(fname,' - ',date_format(dob,'%D %b')) as 'birthday' 
FROM birthdays 
where MONTH(dob) = MONTH(NOW()) 
  and day(dob) between day(sysdate()) and day(sysdate())+10 
order by dob ;

这仅显示当月的生日。

select concat(fname,' on ',date_format(dob,'%D %b')) as 'birthday' 
FROM birthdays 
where MONTH(dob) = MONTH(NOW()) 
  and day(dob) between day(sysdate())-8 and day(sysdate())-1 
order by dob ;

这显示最近的生日。

我真正想要的是假设如果我在月底运行查询,它应该显示最近的 3 岁生日和下个月的生日。 谁能帮我解决这个问题?

最佳答案

请尝试以下..

Select * from birthdays where (MONTH(dob) = MONTH(NOW()) and day(dob) 
in (select day(dob) from birthdays where DAY(dob) BETWEEN DAY(SYSDATE())-8 
AND DAY(SYSDATE())-1 ORDER BY dob limit 3) ) or month(dob) = month(now())+1 

关于mysql - 最近 4 个和即将到来的 4 个生日,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20744344/

相关文章:

mysql - 反向内连接

java - servlet/servlet-mapping 和 filter/filter-mapping 之间的区别?

java - JSP中上传PDF到数据库和存储系统(文件夹)

java - 将类从 WAR 移动到 JAR 时出现 NoClassDefFoundError

javascript - PHP页面: Dropdown always selects the first value

MYSQL 如果一个选择查询返回 0 行然后另一个选择查询?

php - 创建一个foreach循环以在php变量中缓存html表单名称

java - jsp中的 'Page scope'是什么?

java - 从 JSP 中取回对象

Spring security JSP 标签 - 我需要哪些 jar?