Ahojte, nevím, zda se to hodí do nějakého fóra sem, ale potřebuji vytvořit dotaz, takže asi jo. Mám v databázi uložená data pomocí sloupců date_from a date_to. Na vstupu vím rozmezí datumů a potřebuji zjistit, zda toto rozmezí koliduje s čímkoliv v databázi. Nejjednodušší způsob tedy je tento:
$from = '2011-05-08';
$to = '2011-06-05';
SELECT * FROM `table` WHERE
((`date_from` < $from) AND (`date_to` > $to)) OR
((`date_from` >= $from) AND (`date_to` <= $to)) OR
((`date_from` < $from) AND (`date_to` < $to)) OR
((`date_from` > $from) AND (`date_to` > $to))
Tento dotaz se mi ale moc nelíbí, protože je časově náročný. Na "pár" záznamech to pobeží v pohodě, ale když jich tam bude deset tisíc...? Poraďte mi, prosím. Děkuji.