这是一个 Mysql/sql 查询问题,但请允许我解释一下上下文:我想为我的 PHP 日历配备一个“< PREV”和“NEXT >”按钮,允许用户轻松转到上一个或下一个可用月份有可用的数据库条目。如果没有可用的数据库条目,我想禁用该按钮(我不希望系统显示一个空日历)。
示例: 用户有 FEB 视图。JAN 和 MAR 不包含条目,但 DEC 和 APR 包含。然后“下一步 >”按钮需要切换到四月日历。'< PREV' 按钮需要切换到十二月日历。
所以基本上我正在寻找一个有效的查询,可以检查条目是否存在于视图中的月份之前和之后(但不是部分)。
该表有一个字段“logDate”,其日期类型为“Ymd”。
我开始摸索以下查询,首先检查给定日期之前和之后是否存在日期,但我知道这个查询有一些问题。一方面,如果表中有一个条目是“2013-03-19”,我的查询会为 prev 输出一个 1 - 这当然不表示在 3 月之前的几个月内是否存在条目。
SELECT IF( EXISTS(SELECT dayId FROM LogbookDay
WHERE logDate < '2013-03-20' AND userId = 2), 1, 0) as prev,
IF( EXISTS(SELECT dayId FROM LogBookDay WHERE logDate > '2013-03-20'
AND userId = 2), 1, 0) as next