2011-11-19 71 views
0

我工作的考勤记录,在这里我使用NULL:检查的值是一个查询

$sql="SELECT date FROM daily_entry_log_2011 WHERE logout_time > '16:30:00' AND 
logout_time < '18:30:00' AND date BETWEEN '".$firstdt."' AND '".$lastdt."' 
AND empid = '".$eid."'"; 

我如何检查是否logout_time为NULL在此查询?

+0

可以定义“为空”?数据库行的该列中没有条目? – Mawg

+0

请注意,您的代码可能容易受到** SQL注入**攻击!只需_concatenate_用户输入来构建查询是非常危险的。 **见为例[这里](http://www.unixwiz.net/techtips/sql-injection.html)。** –

回答

1

这真的是不明确的,你究竟是想要做什么。为了测试空性使用IS NULL语法:http://dev.mysql.com/doc/refman/5.0/en/comparison-operators.html#operator_is-null

退出时间不能同时为'18:30:00' ,并在同一时间为空,所以要大胆地猜测,你是想

WHERE ((logout_time > '16:30:00' AND logout_time < '18:30:00') OR logout_time) IS NULL) AND ... 
+0

先生,如果员工在签收按钮进入形式办公室没有点击,然后在数据库表中注销场显示null。所以我想以检索,如果注销场也为空 – omnath

+0

那么我已经写大概是正确的 – Andrew

+0

感谢您的帮助,先生 – omnath

0
 
$sql="SELECT date FROM daily_entry_log_2011 WHERE logout_time > '16:30:00' AND 
logout_time < '18:30:00' OR logout_time IS NULL AND date BETWEEN '".$firstdt."' AND '".$lastdt."' 
AND empid = '".$eid."'"; 

+0

没有它不正确。其显示在接近约138139140 – omnath

+0

它缺少bracketting值 – Andrew