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 16:55 | Zajímavý software

    pico-usb-wifi je open source firmware pro Raspberry Pi Pico W, který jej promění v USB Wi-Fi adaptér. Po připojení k počítači se objeví jako zařízení USB CDC-NCM.

    Ladislav Hagara | Komentářů: 0
    dnes 16:00 | IT novinky

    Americká společnost Google ze skupiny Alphabet bude muset podle nových požadavků Evropské unie umožnit společnosti OpenAI i dalším konkurentům v oblasti umělé inteligence (AI) a internetových vyhledávačů přístup ke svým službám. Ve svém rozhodnutí o tom včera informovala Evropská komise (EK). Opatření má zajistit dodržování pravidel, jejichž cílem je omezit v EU tržní sílu velkých technologických firem. Google s tím nesouhlasí.

    … více »
    Ladislav Hagara | Komentářů: 0
    dnes 04:55 | Komunita

    Nové verze webových prohlížečů Chrome a Firefox jsou vydávány každé 4 týdny. Aktuální verze Chrome je 150. Aktuální verze Firefoxu je 152. V březnu bylo oznámeno, že od září přejde Chrome na dvoutýdenní cyklus vydávání verzí. To by znamenalo, že Chrome v číslování verzí Firefox brzy přeskočí. Vývojáři Firefoxu proto také od září přecházejí na dvoutýdenní cyklus vydávání verzí. :-)

    Ladislav Hagara | Komentářů: 3
    dnes 00:22 | Zajímavý software

    Microsoft Comic Chat (Wikipedie), tj. grafický IRC klient z devadesátek, který převáděl konverzace na IRC do podoby komiksových panelů, a který zpopularizoval font Comic Sans, je dnešním dnem open source. Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT.

    Ladislav Hagara | Komentářů: 1
    včera 19:55 | Nová verze

    Byla vydána (𝕏) nová verze 26.7 open source firewallové a routovací platformy OPNsense (Wikipedie). Jedná se o fork pfSense postavený na FreeBSD. Kódový název OPNsense 26.7 je Xenial Xenops. Přehled novinek v příspěvku na fóru.

    Ladislav Hagara | Komentářů: 0
    včera 14:44 | IT novinky

    Na Seznam nepovolených internetových her (Wikipedie) se k 13. 7. 2026 dostala predikční platforma Polymarket.

    Ladislav Hagara | Komentářů: 5
    včera 14:22 | Zajímavý článek

    Nová čísla časopisů od nakladatelství Raspberry Pi zdarma ke čtení: Raspberry Pi Official Magazine 167 (pdf) a Hello World 30 (pdf).

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

    Byla vydána nová verze 3.22.0 grafického vývojového prostředí a platformy Gambas (Wikipedie) založené na interpretru programovacího jazyka Basic s rozšířením o objektově orientované programování. Přehled novinek v poznámkách k vydání. Zdrojové kódy jsou k dispozici na GitLabu.

    Ladislav Hagara | Komentářů: 0
    15.7. 20:22 | Komunita

    FreeBSD odstranilo poslední GPL kód ze základního systému. Konkrétně dpv, libdpv, libfigpar a dialog. Instalátor před čtyřmi lety přešel z dialogu na bsddialog.

    Ladislav Hagara | Komentářů: 2
    15.7. 15:22 | IT novinky

    Sociální síti 𝕏 (dříve Twitter) má dnes 20 let. Pro veřejnost byla zpřístupněna 15. července 2006.

    Ladislav Hagara | Komentářů: 2
    Které desktopové prostředí na Linuxu používáte?
     (11%)
     (7%)
     (2%)
     (17%)
     (31%)
     (4%)
     (6%)
     (2%)
     (15%)
     (25%)
    Celkem 2154 hlasů
     Komentářů: 30, poslední 3.4. 20:20
    Rozcestník


    Dotaz: MySQL - podmínka pro sloupec

    17.9.2012 11:23 filbar | skóre: 36 | blog: Denicek_programatora | Ostrava
    MySQL - podmínka pro sloupec
    Přečteno: 484×
    V MySQL mám takovou tabulku -
    +----+------------+----------+----------+
    | id | product_id | group_id | price    |
    +----+------------+----------+----------+
    | 61 |          3 |        0 |   100.00 |
    | 62 |          3 |        2 |   100.00 |
    |  6 |          4 |        0 | 10000.00 |
    +----+------------+----------+----------+
    
    
    A jde mi zde o sloupec group_id. Potřeboval bych z této tabulky dostat takové řádky, že pokud bude obsahovat pro jeden product_id jak řádek s group_id=0, tak i s group_id=2, tak aby mi to vrátilo řádek s group_id=2, ale pokud pro daný product_id bude jenom group_id=0, tak aby mi to vrátilo řádek s group_id=0. Zkoušel jsem už různé možnosti, ale nějak se mi nedaří přijít na to jak definovat WHERE podmínku.

    Předem děkuji za rady.

    Odpovědi

    17.9.2012 12:43 darkenik
    Rozbalit Rozbalit vše Re: MySQL - podmínka pro sloupec
    nieco take by mohlo fungovat select * from tabulka where (group_id > 0) OR ( group_id=0 AND NOT group_id > 0);
    17.9.2012 12:56 filbar | skóre: 36 | blog: Denicek_programatora | Ostrava
    Rozbalit Rozbalit vše Re: MySQL - podmínka pro sloupec
    To bylo to první co jsem zkoušel
    SELECT id, product_id, group_id, price FROM tabulka WHERE group_id=2 OR (group_id=0 AND NOT group_id=2)
    
    a toto mi to vyplivne:
    +----+------------+----------+--------+
    | id | product_id | group_id | price  |
    +----+------------+----------+--------+
    | 61 |          3 |        0 | 100.00 |
    | 62 |          3 |        2 | 100.00 |
    +----+------------+----------+--------+
    
    17.9.2012 13:30 kuka
    Rozbalit Rozbalit vše Re: MySQL - podmínka pro sloupec
    (group_id=0 AND NOT group_id=2) ma delat co? Cele je to z principu nesmysl, protoze podminka se aplikuje na jeden radek tabulky, tzn. nemuze jakkoliv osetrit existenci jineho radku s nejakymi vlastnostmi. SQL na toto nema moc hezke prostredky, trivialne lze napr. (napsal jsem to presne jak je tve zadani, ktere se mi ale zda hodne divne...)

    -- existuje pouze radek s group_id = 0
    select * from tabulka t
    where group_id = 0
      and not exists ( select 0 from tabulka
                         where product_id = t.product_id
                           and group_id != 0 )
    union all
    -- existuje group_id = 2 i group_id = 0 a chci dvojku
    select * from tabulka t
    where group_id = 2
      and exists ( select 0 from tabulka
                     where product_id = t.product_id
                       and group_id = 0 )
    

    nebo by sel pouzit outer join sam na sebe. Jsou i dalsi reseni, zalezi na tom co presne potrebujes, jestli te trapi vykon apod. Nejefektivnejsi casto byva spojeni s proceduralnim zpracovanim, pokud prichazi z hlediska aplikace v uvahu.
    17.9.2012 14:57 filbar | skóre: 36 | blog: Denicek_programatora | Ostrava
    Rozbalit Rozbalit vše Re: MySQL - podmínka pro sloupec
    Ono jde o to, že daná cena může být pro group_id=0 - všechny uživatele, nebo pro group_id=x, kde x je skupina daného uživatele. A když je cena pro všechny uživatele bez ohledu na skupinu stejná, tak se používá group_id=0, jinak group_id=x. Takže potřebuju právě získat nejprve ceny pro group_id=x a když pro group_id=x není, tak pak výchozí cenu pro group_id=0.
    17.9.2012 15:29 kuka
    Rozbalit Rozbalit vše Re: MySQL - podmínka pro sloupec
    No ja bych to nepitval, asi vis sam nejlip, co potrebujes. V otazce to podle mne pises trochu jinak ("bude jenom group_id=0"), takze si pripadne musis upravit podminku v prvnim dotazu. Rovnez podminka ve druhem dotazu vychazi ze zadani ("s group_id=0, tak i s group_id=2"), pokud je existence radku pro group_id=0 vzdy zarucena, tak tam podminka samozrejme nemusi vubec byt.
    17.9.2012 15:48 Kit
    Rozbalit Rozbalit vše Re: MySQL - podmínka pro sloupec
    Kdybys dokázal specifikovat problém, tak bys možná na to i sám přišel. Takto jenom věštíme. Má mít group_id nějakou konkrétní hodnotu a v případě absence se má použít group_id=0?
    17.9.2012 12:56 Kit
    Rozbalit Rozbalit vše Re: MySQL - podmínka pro sloupec
    Má to sice k dokonalosti daleko, ale mohlo by to fungovat:
    SELECT * FROM
       (SELECT * FROM tab ORDER BY group_id DESC) AS tab2
       GROUP BY product_id;
    17.9.2012 23:20 Jirka
    Rozbalit Rozbalit vše Re: MySQL - podmínka pro sloupec
    SELECT
      COALESCE(t2.id, t1.id),
      t1.product_id,
      COALESCE(t2.group_id, t1.group_id),
      COALESCE(t2.price, t1.price)
    FROM
      tab t1
      LEFT JOIN tab t2 ON (t1.product_id=t2.product_id AND t2.group_id=2)
    WHERE
      t1.group_id = 0;
    
    18.9.2012 00:20 l0gik | skóre: 22
    Rozbalit Rozbalit vše Re: MySQL - podmínka pro sloupec
    Jednoduché - prostě chceš řádky s group_id 2 a takové s groupid 0, ke kterým neexistuje groupid 2...
    SELECT * FROM tabulka WHERE 
    group_id  = 2 OR 
    (group_id = 0 AND product_id NOT IN (SELECT product_id FROM tabulka WHERE group_id = 2))
    
    Pokud bys chtěl řádek s nejvyšším groupid (obecnější řešení), tak
    
    SELECT * FROM TABULKA WHERE (product_id, group_id) IN 
    (SELECT product_id , MAX(group_id) FROM tabulka GROUP BY product_id)
    

    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.