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:11 | IT novinky

    Před 30 lety, tj. v úterý 30. dubna 1996, byl spuštěn Seznam.cz.

    Ladislav Hagara | Komentářů: 0
    dnes 11:44 | Komunita

    Byly zpracovány a zveřejněny všechny videozáznamy, které stojí za zveřejnění, z konference FOSDEM 2026.

    Ladislav Hagara | Komentářů: 0
    dnes 01:11 | IT novinky

    Od úterý 28. dubna musí nově uváděné notebooky v Evropské unii podporovat nabíjení přes USB-C. Jednotná nabíječka byla schválena Evropským parlamentem v říjnu 2022.

    Ladislav Hagara | Komentářů: 32
    včera 23:44 | Bezpečnostní upozornění

    Byly publikovány informace o kritické zranitelnosti CVE-2026-31431 pojmenované Copy Fail v Linuxu, konkrétně v kryptografii (AF_ALG). Běžný uživatel může získat práva roota (lokální eskalaci práv). Na všech distribucích Linuxu vydaných od roku 2017. Pomocí 732bajtového skriptu. V upstreamu je již opraveno. Zranitelnost byla nalezena pomocí AI Xint Code.

    Ladislav Hagara | Komentářů: 2
    včera 17:44 | Nová verze

    Textový editor Zed dospěl do verze 1.0. Představení v příspěvku na blogu.

    Ladislav Hagara | Komentářů: 0
    včera 04:44 | Komunita

    Vývojáři svobodného 3D softwaru Blender představili (𝕏, Mastodon, Bluesky) nejnovějšího firemního sponzora Blenderu. Je ním společnost Anthropic stojící za AI Claude a úroveň sponzoringu je Patron, tj. minimálně 240 tisíc eur ročně. Anthropic oznámil sponzorství v tiskové zprávě Claude for Creative Work.

    Ladislav Hagara | Komentářů: 6
    včera 03:55 | Nová verze

    VNC server wayvnc pro Wayland kompozitory postavené nad wlroots - ne GNOME, KDE nebo Weston - byl vydán ve verzi 0.10.0. Vydána byla také verze 1.0.0 související knihovny neatvnc.

    Ladislav Hagara | Komentářů: 0
    28.4. 16:22 | Nová verze

    Bylo oznámeno vydání Fedora Linuxu 44. Ve finální verzi vychází šest oficiálních edic: Fedora Workstation a Fedora KDE Plasma Desktop pro desktopové, Fedora Server pro serverové, Fedora IoT pro internet věcí, Fedora Cloud pro cloudové nasazení a Fedora CoreOS pro ty, kteří preferují neměnné systémy. Vedle nich jsou k dispozici také další atomické desktopy, spiny a laby. Podrobný přehled novinek v samostatných článcích na stránkách

    … více »
    Ladislav Hagara | Komentářů: 7
    28.4. 15:44 | Zajímavý článek

    David Malcolm se na blogu vývojářů Red Hatu rozepsal o vybraných novinkách v GCC 16, jež by mělo vyjít v nejbližších dnech. Vypíchnuta jsou vylepšení čitelnosti chybových zpráv v C++, aktualizovaný SARIF (Static Analysis Results Interchange Format) výstup a nová volba experimental-html v HTML výstupu.

    Ladislav Hagara | Komentářů: 0
    28.4. 15:11 | Nová verze

    Byla vydána verze R14.1.6 desktopového prostředí Trinity Desktop Environment (TDE, fork KDE 3.5, Wikipedie). Přehled novinek v poznámkách k vydání, podrobnosti v seznamu změn.

    JZD | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (14%)
     (8%)
     (2%)
     (13%)
     (31%)
     (3%)
     (7%)
     (3%)
     (15%)
     (25%)
    Celkem 1460 hlasů
     Komentářů: 30, poslední 3.4. 20:20
    Rozcestník

    Dotaz: MySQL update více polí dotazem

    18.2.2019 11:14 Milan Uhrák | skóre: 31 | blog: milan_at_ABC
    MySQL update více polí dotazem
    Přečteno: 572×
    Zdravím,

    Chci aktualizovat ( nově přidané ) sloupce LastPlace a LastDate pomocí největší hodnoty Time ( a z odpovídajícího řádku PC_Hostname ).

    Vypotil jsem ze sebe
    UPDATE Disks set ( SELECT PC_Hostname AS LastPlace, Time AS LastDate 
    FROM Collections WHERE DiskID = Disk.ID ORDER BY Time DESC LIMIT 1 )
    Ale to asi není správná cesta.

    Dokážu to udělat po jedné hodnotě, ale takto současně mi to nijak nevychází. Ani na netu jsem při hledání podobnou konstrukci neviděl.

    Asi to takto nepůjde, nebo je cestička ?

    Díky Milan

    Řešení dotazu:


    Odpovědi

    18.2.2019 11:17 Milan Uhrák | skóre: 31 | blog: milan_at_ABC
    Rozbalit Rozbalit vše Re: MySQL update více polí dotazem
    Ještě oprava v dotazu namísto Disk má být Disks
    18.2.2019 12:31 Milan Uhrák | skóre: 31 | blog: milan_at_ABC
    Rozbalit Rozbalit vše Re: MySQL update více polí dotazem
    Nakonec jsem "zaměstnal stroj" namísto hlavy ...
     
    UPDATE Disks  SET 
         LastPlace = ( 
              SELECT PC_Hostname FROM Collections 
                   WHERE Collections.DiskID = Disks.ID ORDER BY Collections.Time DESC LIMIT 1 
         ), 
         LastDate = ( 
              SELECT Time FROM Collections 
                  WHERE Collections.DiskID = Disks.ID ORDER BY Collections.Time DESC LIMIT 1 
         ) ;

    Není čas :)

    Ale kdyby to někdo uměl tou hlavou, nechám se poučit

    M.
    Řešení 1× (Milan Uhrák (tazatel))
    18.2.2019 12:54 Kit | skóre: 46 | Brno
    Rozbalit Rozbalit vše Re: MySQL update více polí dotazem
    Zkusím z hlavy:
    UPDATE Disks AS D
        JOIN (SELECT DiskID, LastPlace, max(Time) AS LastDate
            FROM Collections GROUP BY DiskID) AS C
        ON D.ID=C.DiskID
        SET D.LastPlace=C.LastPlace,
            D.LastDate=C.LastDate;
    Bez záruky.
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    18.2.2019 22:22 Milan Uhrák | skóre: 31 | blog: milan_at_ABC
    Rozbalit Rozbalit vše Re: MySQL update více polí dotazem
    Zato to vypadá slibně. Ráno určitě vyzkouším.

    Děkuji za inspiraci

    M.
    20.2.2019 08:51 j
    Rozbalit Rozbalit vše Re: MySQL update více polí dotazem
    To ti fungovat nebude ;D ....

    SELECT DiskID, LastPlace, max(Time) AS LastDate FROM Collections GROUP BY DiskID

    Vynada ti to za ten LastPlace. Musis nejdriv zjistit ten max time a pak ho dat do join/where. A bude to fungovat jen za predpokladu, ze je pro konkretni DiskID unikatni.

    Tzn nejdriv potrebujes

    SELECT DiskID, max(Time) AS LastDate FROM Collections GROUP BY DiskID

    A pak nejak tak (group uz netreba, cas mas)

    SELECT DiskID, LastPlace, Time AS LastDate FROM Collections as x join ( SELECT DiskID, max(Time) AS LastDate FROM Collections GROUP BY DiskID) as t on t.DiskID = x.DiskID and t.LastDate = x.Time

    Jo a btw, takovyhle veci vetsinou nejsou nijak uzasne rychly, spis presne naopak, takze to je spis takova prasecinka na jednorazovy pouziti.
    20.2.2019 10:49 Milan Uhrák | skóre: 31 | blog: milan_at_ABC
    Rozbalit Rozbalit vše Re: MySQL update více polí dotazem
    Ahoj, díky, tohle je už fakt masakr, tohle bych nevypotil. Těch disků je tam asi 150, záznamů k nim asi 35000( už to nějakou dobu sleduju, no ).

    Nakonec jsem to udělal po svém
     
    UPDATE Disks  SET 
       LastPlace = ( 
          SELECT PC_Hostname FROM Collections WHERE Collections.DiskID = Disks.ID ORDER BY Collections.Time DESC LIMIT 1 
       ), 
       LastDate = ( 
          SELECT Time FROM Collections WHERE Collections.DiskID = Disks.ID ORDER BY Collections.Time DESC LIMIT 1 
       ) ;

    Dotay opravdu není rychlý, ale svoje udělá.

    Možná by to šlo přes temporary table ... ale tuhle cestu namám prošlapanou, nebudu to už ani zkoušet .. asi.
    20.2.2019 10:54 Milan Uhrák | skóre: 31 | blog: milan_at_ABC
    Rozbalit Rozbalit vše Re: MySQL update více polí dotazem
    Díky, toto funguje... jen s úpravou JOIN (SELECT DiskID, PC_Hostname AS LastPlace, max(Time)
    20.2.2019 11:02 Milan Uhrák | skóre: 31 | blog: milan_at_ABC
    Rozbalit Rozbalit vše Re: MySQL update více polí dotazem
    Tedy, Kite, tohle vypotit z hlavy, a ještě fungující ... no tedy poklona ...

    Dotaz ( v PMA ) trval 0,8 sek. ( 150 disků, 35000 collections ).

    Jsem ohromen :-)

    Díky moc, mám se co učit

    M.
    20.2.2019 14:19 Kit | skóre: 46 | Brno
    Rozbalit Rozbalit vše Re: MySQL update více polí dotazem
    Díky za uznání, je to pro mne významným stimulem.
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.

    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.