我试图找出我的查询应该是什么样子。
通过此查询我select * from usr_time_reg
WHERE usr_time_nr = '$usr_time_nr' AND usr_stamp_in LIKE '$y_m'
到目前为止,这么好!
现在我还要选择usr_stamp_in WHERE usr_stamp_in = '0000-00-00 00:00:00' AND usr_stamp_out = '$y_m
该查询应该如何?
查询下面是选择包含'0000-00 ...'的所有usr_stamp_in
。我仍然需要使用“time_nr& y_m”进行过滤!
//Make the Select in mysql
$query = "SELECT * FROM usr_time_reg
WHERE usr_time_nr = '$usr_time_nr' AND usr_stamp_in LIKE '$y_m'
OR usr_stamp_in = '0000-00-00 00:00:00' AND usr_stamp_out LIKE '$y_m'
ORDER BY usr_stamp_in DESC";
变量
$y_m = "2015-03%";
$time_nr = "1";
分贝
ID time_nr stamp_in stamp_out
1 1 2015-03-03 06:00:00 2015-03-03 15:30:00
2 1 0000-00-00 00:00:00 2015-03-04 15:30:00
3 1 2015-03-03 06:00:00 0000-00-00 00:00:00
答案 0 :(得分:1)
我认为您想要做的所有事情都可以在WHERE语句中完成。
我最好的猜测是:
SELECT *
FROM usr_time_reg
WHERE
usr_time_nr = '$usr_time_nr'
AND
(
usr_stamp_in LIKE '$y_m'
OR
(
usr_stamp_in = '0000-00-00 00:00:00'
AND
usr_stamp_out = '$y_m'
)
);
此处usr_time_nr
始终必须为'$user_time_nr'
,然后由OR分隔的其中一个条件必须为真。