CJ největší affiliate síť v ČR, 40+ inzerentů CPC,CPL,CPO model. Začni vydělávat teď
Zobrazují se odpovědi 1 až 9 z 9

delete from...group by...

  1. 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...

  2. Happy Robot :]

    Co se právě děje na Webtrhu?

  3. 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...

  4. 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. 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 :)

  6. 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? :-)

  7. 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

  8. v tom pripade sa zas bude tabulka kazdych 10 minut viac a viac zvacsovat ked sa nebudu vymazavat nepotrebne riadky (rss spravy)...

  9. Citace Původně odeslal timbulko Zobrazit příspěvek
    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:

  10. Citace Původně odeslal timbulko Zobrazit příspěvek
    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.

Hostujeme u Server powered by TELE3