MySQL - select problem

Programovacie jazyky, rady, poradňa...
scriptType
Medium Expert
Medium Expert
Používateľov profilový obrázok
Príspevky: 110
Registrovaný: 22 feb 2011, 19:34

MySQL - select problem

Príspevok od používateľa scriptType »

Zdravím :) mám jednu tabuľku kde sú stĺpce - id | test1 | test2 . Chcem to tak že ak je stĺpec test1 prázdny, tak sa vyberie test2 ak je aj ten prázdny vráti mi to prázdnu hodnotu. Chcem to na jeden dotaz ale akosi sa mi to nedarí. Skúšal som

Kód: Vybrať všetko

SELECT IFNULL(test1, test2) ...
ale to nejde ako chcem. Hľadal som aj v manuáloch, našiel som niečo o COALESCE() alebo že by sa tam možno dalo strčiť CASE, ale neviem si tie informácie spojiť :nono: Máte niekto nápad?
Ďakujem :roll:
*****HERO*****
Guru wannabe
Guru wannabe
Používateľov profilový obrázok
Príspevky: 2446
Registrovaný: 08 máj 2006, 1:34

Re: MySQL - select problem

Príspevok od používateľa *****HERO***** »

a kde bol problem pri pouziti COALESCE() ?

ved to robi presne to, co chces (ak teda za prazdnu hodnotu povazujes NULL). vrati ti prvy neNULLovy stlpec a ak nie je ziadny nenulovy, vrati NULL

Kód: Vybrať všetko

SELECT COALESCE(test1, test2)
ak robis s prazdnymi stringami, mal by si pouvazovat, ci by nebolo lepsie ako default hodnotu pouzit NULL. inak su riesenia aj na to, ale tie uz nie su take pekne (napr. http://stackoverflow.com/questions/4101 ... pty-values )
S-player
Light Star
Light Star
Príspevky: 277
Registrovaný: 23 júl 2011, 22:30

Re: MySQL - select problem

Príspevok od používateľa S-player »

Kód: Vybrať všetko

SELECT IFNULL(test1, test2) FROM table;
Ak je test1 prázdny (Rozprávame sa o NULL nie "") tak sa vyberie test2. Pokiaľ test2 = NULL tak sa ti vráti proste NULL neviem čo riešiš.
Napísať odpoveď