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:22 | Nasazení Linuxu

    Článek na Libre Arts představuje baskytarový multiefekt Anagram od společnosti Darkglass Electronics. S Linuxem uvnitř (licence, GitHub).

    Ladislav Hagara | Komentářů: 1
    dnes 10:22 | IT novinky

    Městský soud v Praze vyhlásil rozsudek, který vyhověl žalobě novináře Jana Cibulky, který s podporou spolku IuRe (Iuridicum Remedium) požadoval omluvu od státu za to, že česká legislativa nařizuje operátorům uchovávat metadata o elektronické komunikaci. To je přitom v rozporu s právem. Stát se musí novináři omluvit a zaplatit náklady řízení. Především je ale součástí přelomové rozhodnutí o nelegálnosti shromažďování dat a o

    … více »
    Ladislav Hagara | Komentářů: 3
    dnes 08:22 | IT novinky

    Americké technologické firmy Apple a Meta Platforms porušily pravidla na ochranu unijního trhu, uvedla včera Evropská komise (EK). Firmám proto vyměřila pokutu – Applu 500 milionů eur (12,5 miliardy Kč) a Metě 200 milionů eur (pět miliard Kč). Komise to oznámila v tiskové zprávě. Jde o první pokuty, které souvisejí s unijním nařízením o digitálních trzích (DMA). „Evropská komise zjistila, že Apple porušil povinnost vyplývající z nařízení

    … více »
    Ladislav Hagara | Komentářů: 13
    dnes 08:11 | IT novinky

    Americká společnost OpenAI, která stojí za chatovacím robotem ChatGPT, by měla zájem o webový prohlížeč Chrome, pokud by jeho současný majitel, společnost Google, byl donucen ho prodat. Při slyšení u antimonopolního soudu ve Washingtonu to řekl šéf produktové divize ChatGPT Nick Turley.

    Ladislav Hagara | Komentářů: 0
    dnes 07:55 | Nová verze

    Po roce vývoje od vydání verze 1.26.0 byla vydána nová stabilní verze 1.28.0 webového serveru a reverzní proxy nginx (Wikipedie). Nová verze přináší řadu novinek. Podrobný přehled v souboru CHANGES-1.28.

    Ladislav Hagara | Komentářů: 0
    dnes 07:44 | Nová verze

    Byla vydána nová verze 10.0.0 otevřeného emulátoru procesorů a virtualizačního nástroje QEMU (Wikipedie). Přispělo 211 vývojářů. Provedeno bylo více než 2 800 commitů. Přehled úprav a nových vlastností v seznamu změn.

    Ladislav Hagara | Komentářů: 0
    včera 16:33 | Komunita

    42 svobodných a otevřených projektů získalo finanční podporu od NLnet Foundation (Wikipedie).

    Ladislav Hagara | Komentářů: 0
    včera 12:22 | IT novinky

    Americký výrobce čipů Intel plánuje propustit více než 20 procent zaměstnanců. Cílem tohoto kroku je zjednodušit organizační strukturu ve firmě, která se potýká s problémy.

    Ladislav Hagara | Komentářů: 9
    včera 05:22 | Nová verze

    Byla vydána OpenMandriva Lx 6.0 s kódovým názvem Vanadium. Přehled novinek v poznámkách k vydání.

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

    CSIRT.CZ, český národní CERT provozovaný na základě veřejnoprávní správní smlouvy společností CZ.NIC, shrnuje patnáct let svého fungování pod tímto sdružením: CSIRT.CZ – 15 let ve sdružení CZ.NIC.

    Ladislav Hagara | Komentářů: 8
    Jaký filesystém primárně používáte?
     (58%)
     (1%)
     (10%)
     (21%)
     (4%)
     (1%)
     (2%)
     (0%)
     (1%)
     (2%)
    Celkem 443 hlasů
     Komentářů: 18, poslední 17.4. 12:41
    Rozcestník

    Dotaz: Zotriedenie viacerých stĺpcov podľa podmienky v MySQL

    Bedňa avatar 1.7.2009 10:45 Bedňa | skóre: 34 | blog: Žumpa | Horňany
    Zotriedenie viacerých stĺpcov podľa podmienky v MySQL
    Přečteno: 396×

    Dáta v databáze

    kat1 kat2

    kat3

    ab    
    ad aa  
    ah af ac
    ai ag aj

    Potrebujem výstup

    aa
    ab
    ac
    aj

    Chcem to zotriediť cez MySQL, v PHP by som to vedel, ale musel by som dať viacero dotazou do databázy, čím by sa to celé spomalilo.

    Podmienka znie: Začni na prvom stĺpci s ľava ak sa názov stĺpca nezačína na "kat", tak potom vráť "nokat", ak sa názov stĺpca začína na "kat" pozri sa do stĺpca vpravo (ak sa názov začina na "kat" a je nulový vráť obsah aktuálneho stĺpca) alebo ak (sa názov stĺpca napravo nezačína na "kat" vráť hodnotu aktuálneho stĺpca) inak "čiže ak sa názov stĺpca začína na kat a je nenulový, pozri sa do ďaľšieho stĺpca či sa nezačína na kat a je nenulový prípadne sa stĺpec nezačína na kat" §toto musí bežať v slučke§ vráť hodnotu aktuálneho stĺpca, výsledok zoraď vzostupne podľa abecedy.

     

    KERNEL ULTRAS video channel >>>

    Řešení dotazu:


    Odpovědi

    1.7.2009 11:17 cronin | skóre: 49
    Rozbalit Rozbalit vše Re: Zotriedenie viacerých stĺpcov podľa podmienky v MySQL
    Takýto postup sa dá "našiť" iba na konkrétnu tabuľku, ktorej štruktúru a mená stĺpcov sú dopredu známe. V relačnej databáze totiž neexistuje nič ako úplné usporiadanie stĺpcov tabuľky a vzťah "stĺpec vľavo/vpravo od" nie je definovaný.
    1.7.2009 11:18 Vojtěch Horký | skóre: 39 | blog: Vojtův zápisník | Praha
    Rozbalit Rozbalit vše Re: Zotriedenie viacerých stĺpcov podľa podmienky v MySQL
    Sice jsem úplně přesně nepochopil, jaký systém se má použít, ale pokud jde o to vybírat do výsledku z různých sloupců podle jejich hodnoty, tak by měl jít použít operátor CASE.
    I am always ready to learn although I do not always like to be taught. (W. Churchill)
    1.7.2009 11:44 happy barney | skóre: 34 | blog: dont_worry_be_happy
    Rozbalit Rozbalit vše Re: Zotriedenie viacerých stĺpcov podľa podmienky v MySQL
    select COALESCE (kat3, kat2, kat1, nokat) from table order by 1;
    Bedňa avatar 1.7.2009 12:10 Bedňa | skóre: 34 | blog: Žumpa | Horňany
    Rozbalit Rozbalit vše Re: Zotriedenie viacerých stĺpcov podľa podmienky v MySQL

    Tá podmienka nebola úplne dobre napísaná takže úprava, ale díky za doterajšie odpovede, možno niečo s toho použijem:
    Ja som to napisal symbolicky, toto potrebujem pretransormovať pre MySQL

    function najdi_ posledny _kat(aktualny() {
      while ((nazov_stlpca(aktualny_stlpec +1) == $left(3,"kat")) AND (obsah_stlpca(aktualny_stlpec +1) != NULL)) {
        aktualny_stlpec++   
       }
        return (obsah_stlpca(aktualny_stlpec)
    }

    if (prvy_stlpec_z_lava != $left(3,"kat")) {
      vysledok = "nokat"
    }
    else {
      if ((nazov_stlpca(aktualny_stlpec +1) == $left(3,"kat")) AND (obsah_stlpca(aktualny_stlpec +1)==NULL)) OR (nazov_stlpca(aktualny_stlpec +1) != $left(3,"kat")) {
        vysledok = obsah_stlpca(aktualny_stlpec)
      }
      else {
        function najdi_posledny_kat(aktualny(aktualny_stlpec)
        vysledok = obsah_stlpca(aktualny_stlpec)
      }
     

    KERNEL ULTRAS video channel >>>
    1.7.2009 13:17 happy barney | skóre: 34 | blog: dont_worry_be_happy
    Rozbalit Rozbalit vše Re: Zotriedenie viacerých stĺpcov podľa podmienky v MySQL
    ak dokážete zabezpečiť, že ak kat(X) je null, tak všetky kat(X+n) sú null (aj nokat), tak sql funkcia COALESCE je to pravé ... btw, v prvom mojom príklade nokat má byť prvý, nie posledný (ako funguje, dočítate sa v manuáli). Ak je počet kat(X) dynamický, treba zmeniť štruktúru.
    Bedňa avatar 1.7.2009 22:03 Bedňa | skóre: 34 | blog: Žumpa | Horňany
    Rozbalit Rozbalit vše Re: Zotriedenie viacerých stĺpcov podľa podmienky v MySQL

    Dík, použijem COALESCE

    KERNEL ULTRAS video channel >>>
    2.7.2009 09:19 Filip Jirsák | skóre: 68 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: Zotriedenie viacerých stĺpcov podľa podmienky v MySQL
    Pokud můžete změnit strukturu databáze, udělejte to. Sloupce kat1…katN evidentně představují vazbu 1:N a měly by být v samostatné tabulce. Pak se vám s tím bude pracovat mnohem snáz.

    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.