2015-03-02 3 views
-2

Im пытается выяснить, как мой запрос должен выглядеть.
Какой будет правильный запрос?

С этим запросом я 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

Как должен выглядеть этот запрос?
Query downunder выбирает ВСЕ usr_stamp_in, который содержит '0000-00 ...'
Мне по-прежнему нужна фильтрация с "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

Пожалуйста, покажите образцы данных и ожидаемый результат, чтобы мы поняли, что вы пытаетесь выполнить. –

+0

@MarcusAdams: Смотрите мой обновленный вопрос plz. – d00rman

+0

Перечитайте комментарий маркусадама. Где time_nr на выходе? Где stamp_out на вкладке? Не имеет большого смысла. – Strawberry

ответ

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 необходимо, чтобы быть правдой.

+0

Отлично! Спасибо! – d00rman

Смежные вопросы