我的表格中包含以下字段:staff_id
,leave_applied_from
,leave_applied_to
。
+----------+--------------+------------+
| staff_id | applied_from | applied_to |
+----------+--------------+------------+
| 1 | 2012-06-21 | 2012-06-21 |
| 2 | 2012-06-21 | 2012-06-23 |
+----------+--------------+------------+
所以要求是,如果staff_id 1
尝试输入日期2012-06-21
,则不应允许输入日期,如果staff_id 2
尝试输入日期2012-06-22
它不应该允许工作人员进入。
我知道如何在PHP方面显示错误,但我不知道如何检查数据库是否存在DB中的日期,我不知道如何检查单个MySQL查询中的两个字段。
查询应首先检查staff_id,然后检查其他字段(applied_from,applied_to)。如果工作人员已经输入相同的日期范围,则应该给出错误。
答案 0 :(得分:1)
请尝试以下方法:
SELECT * from tbl where (applied_from =< @inputdate AND applied_to >= @inputdate)
AND staff_id=@inputid
如果查询返回记录,则表示日期中的键在范围内,您可以提示错误。
答案 1 :(得分:0)
select case when curdate() < applied_from or curdate() > applied_to
then 1
else 0
end as is_staff_id_ok
from your_table
where staff_id = 1