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í
×
    včera 16:44 | Komunita

    Dnes v 17:30 bude oficiálně vydána open source počítačová hra DOGWALK vytvořena v 3D softwaru Blender a herním enginu Godot. Release party proběhne na YouTube od 17:00.

    Ladislav Hagara | Komentářů: 3
    včera 14:55 | Humor

    McDonald's se spojil se společností Paradox a pracovníky nabírá také pomocí AI řešení s virtuální asistentkou Olivii běžící na webu McHire. Ian Carroll a Sam Curry se na toto AI řešení blíže podívali a opravdu je překvapilo, že se mohli přihlásit pomocí jména 123456 a hesla 123456 a získat přístup k údajům o 64 milionech uchazečů o práci.

    Ladislav Hagara | Komentářů: 9
    včera 00:11 | Nová verze

    Byla vydána (𝕏) červnová aktualizace aneb nová verze 1.102 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a videi v poznámkách k vydání. Ve verzi 1.102 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.

    Ladislav Hagara | Komentářů: 0
    10.7. 21:00 | Bezpečnostní upozornění

    Byla vydána nová verze 2.4.64 svobodného multiplatformního webového serveru Apache (httpd). Řešeno je mimo jiné 8 bezpečnostních chyb.

    Ladislav Hagara | Komentářů: 4
    10.7. 15:22 | Nová verze

    Společnost xAI na síti 𝕏 představila Grok 4, tj. novou verzi svého AI LLM modelu Grok.

    Ladislav Hagara | Komentářů: 12
    10.7. 12:55 | Bezpečnostní upozornění

    Ministerstvo vnitra odhalilo závažný kyberincident v IT systému resortu. Systém, do kterého se dostal útočník bez oprávnění, byl odpojen a nedošlo k odcizení dat [𝕏].

    Ladislav Hagara | Komentářů: 16
    10.7. 11:55 | Humor

    Před rokem byla streamovací služba HBO Max přejmenována na Max. Dle managementu slovo HBO v názvu nebylo důležité. Včera byl Max přejmenován zpět na HBO Max. Kolik milionů dolarů to stálo? 😂

    Ladislav Hagara | Komentářů: 13
    10.7. 02:11 | Nová verze

    Byla vydána nová major verze 8.0.0 svobodného systému pro detekci a prevenci průniků a monitorování bezpečnosti počítačových sítí Suricata (Wikipedie). Přehled novinek v oficiálním oznámení a v aktualizované dokumentaci.

    Ladislav Hagara | Komentářů: 0
    10.7. 01:11 | Nová verze

    Mastodon (Wikipedie) - sociální síť, která není na prodej - byl vydán ve verzi 4.4. Přehled novinek s náhledy a videi v oznámení na blogu.

    Ladislav Hagara | Komentářů: 1
    10.7. 00:11 | IT novinky

    Instituce státní správy nebudou smět využívat produkty, aplikace, řešení, webové stránky a webové služby poskytované čínskou společností DeepSeek. Na doporučení Národního úřadu pro kybernetickou a informační bezpečnost rozhodla o jejich zákazu vláda Petra Fialy na jednání ve středu 9. července 2025.

    Ladislav Hagara | Komentářů: 8
    Jaký je váš oblíbený skriptovací jazyk?
     (59%)
     (27%)
     (7%)
     (3%)
     (1%)
     (1%)
     (4%)
    Celkem 388 hlasů
     Komentářů: 16, poslední 8.6. 21:05
    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: 528×
    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: 45 | 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: 45 | 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.