Autor Zpráva
Manny
Profil *
Ahoj,
pořeboval bych z db udělat výpis nejnovějších záznamů, které mají stejné datum. Problém je v tom, že jich může být 2 a více. Zatím mě napadlo jen udělat dotaz na datum posledního záznamu a pak podle datumu další dotaz na všechny záznamy s tímto datumem. Přijde mi to ale zbytečný.
Nebylo by něco jednodušího?
Kajman_
Profil *
Mrkněte na "Nalezení řádků s maximální (minimální) hodnotou" na ten druhý příklad ve faq.
Manny
Profil *
Kajman:
Mrkněte na "Nalezení řádků s maximální (minimální) hodnotou" na ten druhý příklad ve faq.
To bude zřejmě ono, ale asi nejsem tak dobrý v sql, abych to pochopil. A taky nevím jestli funkce max bude fungovat s datumem ve formátu %e.%c.%Y. Ale stejně díky.
Kajman_
Profil *
A taky nevím jestli funkce max bude fungovat s datumem ve formátu %e.%c.%Y.

Když datum ukládáte jako string, tak max vrátí nejvyšší string. Když byste ho ukládal jako date, vrátí nejvyšší datum.

Pokud ale poslední záznam zjišťujete podle id nebo tak něco a podle toho se má hledat stejný string v kolonce datum, tak by to mohlo být takto nějak...
select t1.* from tabulka t1, (select t2.datum from tabulka t2 order by id desc limit 1) t3 where t1.datum = t3.datum
Manny
Profil *
Kajman:
Datum je uloženo jako date fomát a hledám ho jako poslední záznam (desc) . Už jsem to radši udělal to svou původní komplikovanou cestou. Ale jsou to 2 dotazy do DB :-((
V tom vašem sql nerozumím těm t1., t2. Tak daleko ještě nejsem:-)
Kajman_
Profil *
t1, t2 a t3 jsou tady jako aliasy tabulek. Někdy to zkracuje zápis, někdy to pak umožní vícekráte použít tu samou tabulku v jednom dotaze. Mělo by stačit nahradit slovo "tabulka" za název Vaší tabulky a slova "id","datum" za názvy sloupců v oné tabulce.

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