abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 12:22 | IT novinky

    Před dvěma lety zavedli operátoři ochranu proti podvrženým hovorům, kdy volající falšuje čísla anebo se vydává za někoho jiného. Nyní v roce 2026 blokují operátoři díky nasazeným technologiím v průměru 3 miliony pokusů o podvodný hovor měsíčně (tzn., že k propojení na zákazníka vůbec nedojde). Ochrana před tzv. spoofingem je pro zákazníky a zákaznice všech tří operátorů zdarma, ať už jde o mobilní čísla nebo pevné linky.

    Ladislav Hagara | Komentářů: 1
    dnes 03:44 | Komunita

    Společnost Meta (Facebook) předává React, React Native a související projekty jako JSX nadaci React Foundation patřící pod Linux Foundation. Zakládajícími členy React Foundation jsou Amazon, Callstack, Expo, Huawei, Meta, Microsoft, Software Mansion a Vercel.

    Ladislav Hagara | Komentářů: 2
    dnes 01:22 | IT novinky

    Samsung na akci Galaxy Unpacked February 2026 (YouTube) představil své nové telefony Galaxy S26, S26+ a S26 Ultra a sluchátka Galaxy Buds4 a Buds4 Pro. Telefon Galaxy S26 Ultra má nový typ displeje (Privacy Display) chránící obsah na obrazovce před zvědavými pohledy (YouTube).

    Ladislav Hagara | Komentářů: 2
    dnes 00:22 | Nová verze

    Byla vydána grafická knihovna Mesa 26.0.1 s podporou API OpenGL 4.6 a Vulkan 1.4. Je to první stabilní verze po 26.0.0, kde se novinky týkají mj. výkonu ray tracingu na GPU AMD a HoneyKrisp, implementace API Vulkan pro macOS.

    |🇵🇸 | Komentářů: 0
    včera 20:22 | Nová verze

    Byla vydána nová verze 4.6 multiplatformního integrovaného vývojového prostředí (IDE) pro rychlý vývoj aplikaci (RAD) ve Free Pascalu Lazarus (Wikipedie). Využíván je Free Pascal Compiler (FPC) 3.2.2.

    Ladislav Hagara | Komentářů: 0
    včera 18:00 | Nová verze

    Byla vydána nová verze 3.23.0 FreeRDP, tj. svobodné implementace protokolu RDP (Remote Desktop Protocol). Opravuje 11 bezpečnostních chyb.

    Ladislav Hagara | Komentářů: 0
    včera 17:44 | Zajímavý článek

    Španělský softwarový inženýr oznámil, že se mu podařilo na dálku ovládat sedm tisíc robotických vysavačů po celém světě. Upozornil tak na slabé kybernetické zabezpečení těchto technologií a jejich možné a snadné zneužití. Nesnažil se hacknout všechny robotické vysavače po světě, ale pouze propojil svůj nový DJI Romo vysavač se zařízením Playstation. Aplikace podle něj ihned začala komunikovat se všemi sedmi tisíci spotřebiči a on je

    … více »
    Ladislav Hagara | Komentářů: 7
    včera 03:33 | Humor

    Momo je fenka cavapoo, která svými náhodnými stisky kláves bezdrátové klávesnice vytváří jednoduché počítačové hry. Technicky to funguje tak, že Raspberry Pi s připojenou bluetooth klávesnicí posílá text do Claude Code, který pak v Godotu píše hry a sám je i testuje pomocí screenshotů a jednoduchých simulovaných vstupů. Za stisky kláves je Momo automaticky odměňována pamlsky. Klíčový je pro projekt prompt, který instruuje AI, aby i

    … více »
    NUKE GAZA! 🎆 | Komentářů: 24
    včera 02:22 | Nová verze

    GNU awk (gawk), implementace specializovaného programovacího jazyka pro zpracování textu, byl vydán ve verzi 5.4.0. Jedná se o větší vydání po více než dvou letech. Mezi četnými změnami figuruje např. MinRX nově jako výchozí implementace pro regulární výrazy.

    |🇵🇸 | Komentářů: 0
    24.2. 16:22 | IT novinky

    Internetový prohlížeč Ladybird ohlásil tranzici z programovacího jazyka C++ do Rustu. Přechod bude probíhat postupně a nové komponenty budou dočasně koexistovat se stávajícím C++ kódem. Pro urychlení práce bude použita umělá inteligence, při portování první komponenty prohlížeče, JavaScriptového enginu LibJS, bylo během dvou týdnů pomocí nástrojů Claude Code a Codex vygenerováno kolem 25 000 řádků kódu. Nejedná se o čistě autonomní vývoj pomocí agentů.

    NUKE GAZA! 🎆 | Komentářů: 9
    Které desktopové prostředí na Linuxu používáte?
     (18%)
     (6%)
     (0%)
     (11%)
     (27%)
     (2%)
     (5%)
     (2%)
     (12%)
     (26%)
    Celkem 961 hlasů
     Komentářů: 25, poslední 3.2. 19:50
    Rozcestník

    Dotaz: Smazat radky starsi nez... ale ponechat alespon 3 posledni

    16.4.2021 12:25 tom
    Smazat radky starsi nez... ale ponechat alespon 3 posledni
    Přečteno: 2017×
    Zdravim,

    mam zhruba nasledujici MySQL tabulku MSG_LOG:
    VARCHAR username
    TEXT    msg
    DATE    created_at
    
    A potreboval bych odmazat zpravy starsi nez 1 mesic, ale ponechat alespon 3 posledni pro kazdy username (i kdyz budou treba starsi nez 1 mesic)

    Verim, ze uz to nekdo musel resit, ale asi se googlu spatne ptam :(

    Dekuji

    Odpovědi

    16.4.2021 17:30 X
    Rozbalit Rozbalit vše Re: Smazat radky starsi nez... ale ponechat alespon 3 posledni
    Pokud se jedna o jednorazovou akci, tak si nejprve pro kazdeho uzivatele dohledej ID prvnich tri zaznamu starsixh nez jeden mesic a nasledne smaz vsechny zaznamy starsi jeden mesic s vyjimkou ID zaznamu ktere jsi si dohledal predtim..
    16.4.2021 17:33 X
    Rozbalit Rozbalit vše Re: Smazat radky starsi nez... ale ponechat alespon 3 posledni
    Neco ve smyslu:
    DELETE starsi nez mesic EXCEPT (SELECT prvni tri starsi nez mesic pro kazdeho usera);
    
    16.4.2021 21:17 okbobcz | skóre: 8
    Rozbalit Rozbalit vše Re: Smazat radky starsi nez... ale ponechat alespon 3 posledni
    Tohle je klasická úloha nalezení top N pro každou skupinu. Korelovaným poddotazem se dá udělat top 1 pro každou skupinu. Ale top n je dost komplikované bez moderního SQL, které je v MySQL až od 8čky. Dá se to udělat jednoduše LATERAL joinem, ještě jednodušeji window funkcemi, a poměrně komplikovaně rekurzivním dotazem. Nejsem si jistý jestli některá z těchto možností byla ve starších verzích MySQL než je nejnovější řada. Ve starších řadách je to možné vyřešit aplikačně nebo uloženou procedurou - skrz iteraci přes kurzor nad uživateli.
    19.4.2021 18:33 EtDirloth | skóre: 11
    Rozbalit Rozbalit vše Re: Smazat radky starsi nez... ale ponechat alespon 3 posledni
    Trochu nestastne definovane zadanie vzhladom na dve veci:
    • kedze je pouzity typ DATE a predpokladam, ze v jednom dni moze byt viac zaznamov, tak sa tazko urci, ktore 3 z viacerych s rovnakym datumom su tie posledne
    • "ponechat aspon 3" je dost vagne - ale zhodou okolnosti to zjednodusi implementaciu tej query - len jej vysledok nebude deterministicky
    ako uz Pavel nadomnou hovoril, v starom mysql chyba podpora korelovanych poddotazov v DELETE - pre mysql 5.6, ktore som skusal na sqlfiddle som prisiel iba na toto:
    CREATE TABLE msg_log
    (
       username   VARCHAR(100)
     , msg        TEXT(100)
     , created_at DATE
    );
    CREATE INDEX idx_msg_log_created_at ON msg_log (username, created_at);
    INSERT INTO msg_log VALUES ('y', 'A', CURRENT_DATE - interval 6 month);
    INSERT INTO msg_log VALUES ('x', 'B', CURRENT_DATE - interval 5 month);
    INSERT INTO msg_log VALUES ('x', 'C', CURRENT_DATE - interval 4 month);
    INSERT INTO msg_log VALUES ('x', 'D', CURRENT_DATE - interval 4 month);
    INSERT INTO msg_log VALUES ('x', 'E', CURRENT_DATE - interval 4 month);
    INSERT INTO msg_log VALUES ('x', 'F', CURRENT_DATE - interval 3 month);
    INSERT INTO msg_log VALUES ('x', 'G', CURRENT_DATE - interval 2 month);
    INSERT INTO msg_log VALUES ('x', 'H', CURRENT_DATE - interval 1 month);
    INSERT INTO msg_log VALUES ('x', 'I', CURRENT_DATE - interval 1 day);
    INSERT INTO msg_log VALUES ('y', 'J', CURRENT_DATE);
    INSERT INTO msg_log VALUES ('z', 'K', CURRENT_DATE - interval 10 month);
    INSERT INTO msg_log VALUES ('z', 'L', CURRENT_DATE - interval 9 month);
    INSERT INTO msg_log VALUES ('z', 'M', CURRENT_DATE - interval 8 month);
    INSERT INTO msg_log VALUES ('z', 'N', CURRENT_DATE - interval 7 month);
    INSERT INTO msg_log VALUES ('z', 'O', CURRENT_DATE - interval 6 month);
    INSERT INTO msg_log VALUES ('z', 'P', CURRENT_DATE - interval 3 month);
    
    DELETE d
      FROM msg_log AS d
      WHERE d.username = 'z'
        AND d.created_at < (
       SELECT min(x.created_at) min_ts
         FROM (
          SELECT *
             FROM msg_log l
             WHERE l.created_at < CURRENT_DATE - interval 1 month
               AND l.username = 'z'
             ORDER BY l.created_at DESC
             LIMIT 3
       ) x)
    ;
    
    ...a volat to pre kazdeho usera zvlast (v priklade 'z').

    tu je kompletny priklad pre PostgreSQL (testovane na 12.6):
    
    CREATE TABLE msg_log
    (
       username   VARCHAR
     , msg        TEXT
     , created_at DATE
    ;
    CREATE INDEX idx_msg_log_created_at ON msg_log (username, created_at);
    
    INSERT INTO msg_log VALUES ('y', 'A', current_date - interval '6 month');
    INSERT INTO msg_log VALUES ('x', 'B', current_date - interval '5 month');
    INSERT INTO msg_log VALUES ('x', 'C', current_date - interval '4 month');
    INSERT INTO msg_log VALUES ('x', 'D', current_date - interval '4 month');
    INSERT INTO msg_log VALUES ('x', 'E', current_date - interval '4 month');
    INSERT INTO msg_log VALUES ('x', 'F', current_date - interval '3 month');
    INSERT INTO msg_log VALUES ('x', 'G', current_date - interval '2 month');
    INSERT INTO msg_log VALUES ('x', 'H', current_date - interval '1 month');
    INSERT INTO msg_log VALUES ('x', 'I', current_date - interval '1 day');
    INSERT INTO msg_log VALUES ('y', 'J', current_date);
    INSERT INTO msg_log VALUES ('z', 'K', current_date - interval '10 month');
    INSERT INTO msg_log VALUES ('z', 'L', current_date - interval '9 month');
    INSERT INTO msg_log VALUES ('z', 'M', current_date - interval '8 month');
    INSERT INTO msg_log VALUES ('z', 'N', current_date - interval '7 month');
    INSERT INTO msg_log VALUES ('z', 'O', current_date - interval '6 month');
    INSERT INTO msg_log VALUES ('z', 'P', current_date - interval '3 month');
    
    WITH users AS (
    -- idealne mat ulozene v tabulke, na ktoru odkazuje cudzi kluc na msg_log(username)
          SELECT DISTINCT username FROM msg_log
       ), maxDateKeptPerUser AS (
          SELECT u.username, (
             SELECT min(x.created_at)
                 FROM (SELECT *
                         FROM msg_log l
                         WHERE l.created_at < CURRENT_DATE - interval '1 month'
                           AND l.username = u.username
                         ORDER BY l.created_at DESC
                         LIMIT 3
                      ) x
             ) AS created_at
             FROM users AS u
       )
    DELETE FROM msg_log AS d
       USING maxDateKeptPerUser AS m
       WHERE d.username   = m.username
         AND d.created_at < m.created_at
    ;
    
    
    22.4.2021 09:57 ajtacka
    Rozbalit Rozbalit vše Re: Smazat radky starsi nez... ale ponechat alespon 3 posledni
    To je otazka jazyka nad tym, napriklad RoR(RUR), z ktoreho ale bola odstranene pokrocilejsie veci v zaujme pokroku, lenze je to ako skrabanie sa lavou nohou za pravym uchom.

    Zda sa to neustaly proces, lenze clovek nevie, co si ma o tom mysliet a ako to vyriesit. Ponukaju sa moznosti co s tym, ale ani jedna sa mi nepaci.

    Nieco je chybne.

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.