Mysql-запрос для получения записей между столбцами и столбцами с двумя вводами даты - PullRequest
0 голосов
/ 23 сентября 2018

У меня есть таблица парковки, где у меня есть столбцы отметок времени «parking_from» и «parking_to».У меня есть форма отчета, где у меня есть фильтры «От» и «Кому», где пользователь может выбрать две метки времени для фильтрации любого транспортного средства, которое может быть припарковано.Я попробовал следующее ...

 select * from parking 
 where parking_from >= '$selected_parking_from' 
   and parking_to <= '$selected_parking_to'

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

Может кто-нибудь помочь мне, как изменить этот запрос?

Ответы [ 2 ]

0 голосов
/ 23 сентября 2018

Вы ищете перекрывающиеся интервалы.Два интервала перекрываются, если первый начинается до того, как второй заканчивается и заканчивается после того, как второй начинается .

Итак:

select p.*
from parking p
where p.parking_from < '$selected_parking_to' and
      p.parking_to > '$selected_parking_from';

Примечание: выдолжен передавать входные данные пользователя с использованием параметров , а не путем манипулирования строкой с использованием переменных.Так что я бы ожидал что-то вроде этого:

where p.parking_from < ? and
      p.parking_to > ?;
0 голосов
/ 23 сентября 2018

Если мы разберем ваш вопрос на его составляющие, мы получим: выбранная парковка от до или после парковки_от И выбранная парковка до ПОСЛЕ парковки_от ИЛИ от выбранной парковки до или после парковки_ до И выбранногостоянка с до

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...