Autor | Zpráva | ||
---|---|---|---|
Tsm Profil * |
#1 · Zasláno: 28. 5. 2013, 23:49:47
Zdravím,
mám v mysql přibližnou tabulku: datum_1, (date) opakovat_1, (int 1/0) datum_2 opakovat_2, datum_3, opakovat_3, datum_4, opakovat_4 datum_1 - datum_4 může a nemusí být vyplněno a opakovat_1 - opakovat_4 je každoroční opakování datumu (1 = ano, 2 = ne). Napdá Vás, jak toto elegantně vyřešit přímo v SQL? nechci podmínku dávat přímo do while cyklu (i když asi nic jiného nezbude). BTW: Občas Vám při odeslání příspěvku zamrzne button a musím zmáčknout F5. Děkuji |
||
ts_istudio Profil |
Na správné řešení - vytvoření extra tabulky pro (data a opakování) už je pozdě? Už v tom máš ostrá data?
tabulka udalosti: ID, nazev_udalosti, .... tabulka opakovani: ID, IDudalosti, datum, opakovat |
||
Tori Profil |
#3 · Zasláno: 29. 5. 2013, 07:15:12
Tsm:
<ot> „Občas Vám při odeslání příspěvku zamrzne button a musím zmáčknout F5.“ Mně se to stává poměrně často, ale přičítám to zlobivému připojení, JS prostě čeká na odezvu ze serveru trochu déle. </ot> |
||
Tsm Profil * |
#4 · Zasláno: 30. 5. 2013, 16:41:15
ts_istudio:
Díky, ostrá data tam nejsou nicméně další tabulku použít nechci. Hold vyberu všechna data a použiju podmínku v cyklu. Tori: Mě občas, ale stačí F5. Trochu to mate, ale na to jak je to tu zmáklý je to prkotina... |
||
Majkl578 Profil |
Tsm:
„nicméně další tabulku použít nechci“ Existuje nějaký rozumný důvod, proč to děláš úmyslně špatně? Co se dotazu týče, ačkoliv jsi neuvedl tvůj cíl, pro výběr aktuálních by nejspíš šlo zhruba něco takového, otázkou je, jak rychlé (pomalé) to bude: WHERE (DAY(datum_1) = DAY(NOW()) AND MONTH(datum_1) = MONTH(NOW()) AND (opakovat_1 = 1 OR YEAR(datum_1) = YEAR(NOW())) OR <totéž co výše pro každé další datum> |
||
Časová prodleva: 11 let
|
0