MySQL перекрытие времени - PullRequest
       2

MySQL перекрытие времени

0 голосов
/ 28 сентября 2011

У меня есть база данных для управления моим расписанием, база данных выглядит так:

CREATE TABLE activities(
name VARCHAR(255),
startTime INT(11),
endTime INT(11)
);

Теперь я хотел бы обнаружить совпадения в действиях.Допустим, у меня есть следующие переменные:

$start=time();
$end=time()+3600;

Теперь я хочу запросить базу данных, чтобы получить ВСЕ действия, которые перекрываются с этим временем.У кого-нибудь есть идея, как это сделать?

Спасибо!

ps Я понимаю, что похожие вопросы уже задавались, но я не смог найти ответ для MySQL с таблицей, похожей на эту..

Ответы [ 3 ]

1 голос
/ 28 сентября 2011

используйте что-то вроде

SELECT * FROM activities WHERE
(.$start. BETWEEN startTime AND endTime) OR
(.$end. BETWEEN startTime AND endTime) OR
(startTime < .$start. AND endTime > .$end.);
0 голосов
/ 28 сентября 2011

Используйте запрос ниже.

"SELECT * 
FROM `activities` 
WHERE `endTime`>".$start." AND `startTime`<".$end

Решение становится вполне очевидным, когда вы рисуете свою проблему.

0 голосов
/ 28 сентября 2011

Полагаю, вам нужно что-то вроде:

mysql_query( "SELECT * FROM `activities` WHERE `startTime`<".$start." AND `endTime`>".$end);

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

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