Autor | Zpráva | ||
---|---|---|---|
Johnik Profil |
#1 · Zasláno: 14. 2. 2010, 18:34:24
Ahoj,
po čase jsem narazil na problém: Potřebuji vybrat z databáze vybrat všechny záznamy z tabulky, kde se vykytuje nějaké slovo. Záznamy v tabulce při editaci uložím s vyšším časem ale stejným id_category - nepřepisuju tedy ty staré ani je nemažu. Klasický výpis záznamu pak provádím srovnáním podle času a limit 1. Problém ale je, že když je chci hledat podle toho slova, tak mi to vybere všechny záznamy, tedy i ty již neaktuální. Lze nějak na úrovni sql napsat podmínka aby záznamy vybral podle slova, ty se stejným id_category srovnal podle času a z nich vybral jen poslední? Děkuji |
||
123456789 Profil * |
#2 · Zasláno: 14. 2. 2010, 19:13:33
Pokud to dobře chápu, tak by mělo pomoct něco podobného:
...WHERE [podmínka dle slova] AND cas = (select max(cas) FROM [ta stejna tabulka] AS t GROUP BY category_id HAVING t.category_id=[puvodni_tabulka].category_id); Prostě korelovaný poddotaz. |
||
123456789 Profil * |
#3 · Zasláno: 14. 2. 2010, 19:22:51
...LIMIT 0,1;
|
||
Kajman_ Profil * |
#4 · Zasláno: 15. 2. 2010, 08:33:53
Nebo si upravit příklad "nejvyšší cena pro danou kategorii", mohlo by to být rychlejší.
|
||
Johnik Profil |
#5 · Zasláno: 15. 2. 2010, 13:49:16
Děkuji oběma, problém vyřešen.
|
||
Časová prodleva: 13 let
|
0