Zadejte hledaný výraz...

delete from…group by…

Ahoj,
robim s RSS citacku s pouzitim mysql, kde sa ukladaju najnovsie clanky. Tabulka s clankami je takato:
CREATE TABLE `rss_data` (
`kanal` INT(11) NOT NULL DEFAULT 0, // id kanalu
`nazov` VARCHAR(250) NOT NULL default '',
`url` VARCHAR(250) NOT NULL default '',
`popis` TEXT NOT NULL,
`cas` DATETIME NOT NULL // cas pridania
);
..ale chcem, aby po pridanie novych clankov prebehol prikaz, ktory necha v kazdom kanali (s rovnakym cislo v polozke "kanal") iba 10 najnovsich clankov...
Myslim, ze by to mohlo ist nejako s pouzitim group by + order by + limit, ale neviem ako presne....
skusal som toto:
delete from `rss_data` group by `kanal` order by `cas` limit 10
ale to mi nefunguje :-/
vdaka za kazu radu...
5. 5. 2008 18:44:09
https://webtrh.cz/diskuse/delete-from-group-by/#reply68221
starenka
verified
rating uzivatele
5. 5. 2008 19:06:54
Tyjo a ja mel dojem ze se rsska spis generujou on-the-fly rovnou z databaze clanku.. (s limit, order by date a pripadne ten tvuj id kanalu). Pak to nemusis mit 2x v db a uz nemusis pak resit nejaky vymazy...
5. 5. 2008 19:06:54
https://webtrh.cz/diskuse/delete-from-group-by/#reply68220
starenka
verified
rating uzivatele
5. 5. 2008 19:15:29
Jinak co se tyce tvyho dotazu nic jinyho nez vyselectovat poslednich deset a pak smazat ty co mezi nima nebyli (WHERE id NOT IN(xx,zzz,ttt). Opravdu me nenapada jak bys tohle nacpal do where... maximalne vnorenym selectem
5. 5. 2008 19:15:29
https://webtrh.cz/diskuse/delete-from-group-by/#reply68219
mandark
verified
rating uzivatele
(11 hodnocení)
5. 5. 2008 19:18:01
asi by to šlo nějakým složeným dotazem s poddotazy...
ale nejlehčí bude udělat to pro každý updatovaný rss kanál zvlášť - stejně je updatuješ zvlášť... napadá mě to třeba takhle:
select min(cas) as c from rss_data where kanal=$kanal order by cas desc limit 0,10
delete from rss_data where kanal=$kanal and cas<$c
- i když v tomhle případě by asi nastal problém s tím, pokud by bylo více zpráv se stejným minimálním časem :)
5. 5. 2008 19:18:01
https://webtrh.cz/diskuse/delete-from-group-by/#reply68218
timbulko
verified
rating uzivatele
(9 hodnocení)
6. 5. 2008 14:44:21
a keď ide o niekoľko stoviek rss zdrojov a má sa to kontrolovať každých povedzme 10 minút, to sa má v tom prípade vykonávať každých 10 minút 100x delete príkaz? To mi príde ako mrhanie výkonom...
Riešenie na jeden riadok by nebolo? :-)
6. 5. 2008 14:44:21
https://webtrh.cz/diskuse/delete-from-group-by/#reply68217
duben
verified
rating uzivatele
(49 hodnocení)
6. 5. 2008 16:59:42
Proste ukladej do DB vsechny clanky razeno dle datumu vlozeni (tj. kazdych 10 minut se pridaji nove zaznamy)
A rss bude cist jen top 10 ... tj. XML bude mod rewritem presmerovany na PHP kde bude
SELECT pole FROM RSStabulka ORDER BY DatumPridani DESC LIMIT 0,10
Nezapomen DatumPridani dat jako index
6. 5. 2008 16:59:42
https://webtrh.cz/diskuse/delete-from-group-by/#reply68216
timbulko
verified
rating uzivatele
(9 hodnocení)
6. 5. 2008 18:04:33
v tom pripade sa zas bude tabulka kazdych 10 minut viac a viac zvacsovat ked sa nebudu vymazavat nepotrebne riadky (rss spravy)...
6. 5. 2008 18:04:33
https://webtrh.cz/diskuse/delete-from-group-by/#reply68215
Kovboj
verified
rating uzivatele
(13 hodnocení)
6. 5. 2008 18:55:18
Napsal timbulko;58362
v tom pripade sa zas bude tabulka kazdych 10 minut viac a viac zvacsovat ked sa nebudu vymazavat nepotrebne riadky (rss spravy)...
Vycisteni muzes provadet treba pravidelne jednou denne nekdy po pulnoci, kdy je minimalni zatez serveru, mozna by to stacilo treba i jednou tydne v noci z nedele na pondeli. Nemyslim ze tam budes mit denne tolik novych zprav, ze bys to musel cistit kazdych par minut ;-)
Nesmis na to koukat tak, ze databaze ktera ma par set radku je uz moc velka - to zacni resit az budes mit par set tisic radku :rolleyes:
6. 5. 2008 18:55:18
https://webtrh.cz/diskuse/delete-from-group-by/#reply68214
duben
verified
rating uzivatele
(49 hodnocení)
7. 5. 2008 11:04:16
Napsal timbulko;58362
v tom pripade sa zas bude tabulka kazdych 10 minut viac a viac zvacsovat ked sa nebudu vymazavat nepotrebne riadky (rss spravy)...
A to ti vadi? Budes mit uskladneno vic a vic informaci k pouziti. Jestli ti to vadi delej to jak psal kovboj, jednou za urcite obdobi to promaz. Dokud nebudes mit radove miliony zaznamu tak pro spravne indexaci to pro DB nebude zadna velka zatez.
7. 5. 2008 11:04:16
https://webtrh.cz/diskuse/delete-from-group-by/#reply68213
Pro odpověď se přihlašte.
Přihlásit