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 14:44 | IT novinky

    Apple bez varování odstranil ze svého obchodu sociální síť VKontaktě i další aplikace skupiny VK, jako je VK Music nebo VK Video [Novinky.cz].

    Ladislav Hagara | Komentářů: 4
    dnes 14:22 | IT novinky

    V dubnu loňského roku představený poštovní klient Notion Mail bude 22. září ukončen.

    Ladislav Hagara | Komentářů: 2
    dnes 04:33 | Komunita

    Konference OpenAlt 2026 hledá přednášející. Proběhne o víkendu 7. a 8. listopadu na půdě Fakulty informačních technologií VUT v Brně. Témata konference jsou: Otevřený a svobodný software, IoT a Hnutí tvůrců, Vzdělávání, Bezpečnost a soukromí, Otevřená společnost, komunity a data, OpenMobility a další.

    Ladislav Hagara | Komentářů: 0
    dnes 04:22 | IT novinky

    Společnosti OpenAI a Broadcom oznámily čip optimalizovaný pro AI pojmenovaný Jalapeño.

    Ladislav Hagara | Komentářů: 0
    včera 20:22 | Nová verze

    Deno (Wikipedie), běhové prostředí (runtime) pro JavaScript, TypeScript a WebAssembly, bylo vydáno v nové verzi 2.9. Hlavní novinkou je deno desktop pro převod Deno projektu na desktopovou aplikaci. Jedná se o alternativu k frameworkům Electron nebo Tauri.

    Ladislav Hagara | Komentářů: 2
    včera 15:44 | IT novinky

    Od zítra jsou Datové schránky oficiálně na nové adrese datovka.gov.cz. Adresa mojedatovaschranka.cz zůstává funkční do 27. srpna 2026, následně budou uživatelé automaticky přesměrováni na datovka.gov.cz.

    Ladislav Hagara | Komentářů: 3
    včera 13:44 | Nová verze

    Dolphin (Wikipedie), tj. open source multiplatformní emulátor herních konzolí GameCube a Wii od Nintenda, byl vydán ve verzi 2606. S podporou Game Boy Playeru.

    Ladislav Hagara | Komentářů: 0
    včera 11:11 | Zajímavý software

    Vasudeva Kamath představil utilitu debvulns, alternativu k nativní utilitě debsecan, pro výpis zranitelností v Debianu. Navíc má především možnost výstupu ve strukturovaných formátech JSON a CSV. V plánu je exportér pro Prometheus.

    Ladislav Hagara | Komentářů: 0
    24.6. 21:44 | IT novinky

    Oficiální český státní eshop s elektronickými dálničními známkami nově najdete na edalnice.gov.cz. Doména gov.cz jasně potvrzuje, že jste na oficiálním státním webu [𝕏].

    Ladislav Hagara | Komentářů: 27
    24.6. 14:22 | Nová verze

    Byla vydána nová verze 4.8.0 interaktivního shellu fish (friendly interactive shell, Wikipedie). Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 7
    Které desktopové prostředí na Linuxu používáte?
     (11%)
     (8%)
     (2%)
     (17%)
     (31%)
     (3%)
     (6%)
     (2%)
     (15%)
     (26%)
    Celkem 1995 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: 576×
    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.