2011-11-19 74 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