Autor Zpráva
Easygoer
Profil
Mám v MySQL tabulku upominky:

CREATE TABLE IF NOT EXISTS `upominky` (
  `id_upominky` int(5) NOT NULL AUTO_INCREMENT,
  `id_klienta` int(4) NOT NULL,
  `id_zaznamu` int(5) NOT NULL,
  `upominka` text COLLATE utf8_czech_ci NOT NULL,
  `datum_vlozeni` datetime NOT NULL,
  `datum_zobrazeni` datetime NOT NULL,
  `upozornit` int(3) NOT NULL,
  PRIMARY KEY (`id_upominky`),
  FULLTEXT KEY `zaznam` (`upominka`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_czech_ci;

Každá upomínka má datum vložení, což je now()
a pak datum zobrazení, které si návštěvník webu nastaví u každé upomínky individuálně.
Tzn. např. za týden, za 14 dní, za měsíc atd. Výsledkem je opět datum ve formátu MySQL.
Další volitelnou položkou je "upozornit", kde si může nastavit, kolik dní před datumem zobrazení
se daná upomínka začne skutečně zobrazovat. Takže nastaví třeba za týden - 1 den.

Tohle funguje:
select * from upominky
where subdate(datum_zobrazeni, interval "1" day) <= current_date

Číslovku "1" bych ale chtěl nahradit hodnotou ve sloupci upozornit,
která je samozřejmě pro každý řádek jiná.

Tohle nefunguje:
select * from upominky
where subdate(datum_zobrazeni, interval "(select upozornit from upominky)" day) <= current_date

Poradíte, jak na to?
Kajman
Profil
interval upozornit day

Ale bude to pomalé. Proč i tento sloupec nemáte v datetime?
Easygoer
Profil
Kajman:
Díky moc! Domníval jsem se, že než datetime je jednodušší sloupec integer (3).

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:

0