Autor Zpráva
Prochy
Profil
Dobrý večer,

řešim tu takový problém, který mám sice vyřešený, ale zajímalo by mě, jestli to jde udělat elegantněji. Takže mám v DB více časů např.:
1. 9:00 - 11:00
2. 9:30 - 10:30
3. 8:00 - 11:30
4. 9:30 - 11:30
Tak potom bych chtěl uložit čas např. 9:00 - 11:00 a potřeboval bych zjistit, jestli je daný čas v průniku s některým uvedeným. Vidíme, že to souhlasí se všemi řádky v DB. Jak nejlépe to zapsat pomocí dotazu. Udělal jsem si následující popis podmínek, které potřebuji, abych se snažil všechno vystihnout:

/*startMysql - počáteční čas v DB s kterým to porovnávám
endMysql - koncový čas v DB s kterým to porovnávám
start - zapisovaný počáteční čas do DB
end - zapisovaný koncový čas do DB*/
start <= startMySQL && end>=endMySQL
||
start >=startMysql && end<=endMysql
||
start <= startMysql && end>=startMysql
||
start<=endMysql &&  end>=endMysql

Na nic lepšího jsem nepřišel, ale nejsem si jistý, jestli to není příliš pomalý dotaz v MySQL.

Díky za rady
Alphard
Profil
Lze formulaci „být v průniku“ chápat jako „průnik testovaných množin je neprázdný“ v klasickém matematickém smyslu?

end >= startMySQL && start <= endMySQL
Prochy
Profil
Doufám, že ti rozumim správně, ale ano je to průnik v klasickém matematickém smyslu, ale není to průnik se všemi řádky v DB dohromady, ale s každým řádkem zvlášť.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: