Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

mysql i naredba CASE

[es] :: MySQL :: mysql i naredba CASE

[ Pregleda: 1404 | Odgovora: 7 ]

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

stex

Član broj: 718
Poruke: 264
*.zrlocal.net

Sajt: stivi.on.neobee.net


Profil

icon mysql i naredba CASE31.05.2004. u 09:17

SELECT tabela1.sifra,
CASE WHEN tabela1.status = 0
THEN (
SELECT tabela2.naziv
FROM baza2.tabela2
WHERE tabela1.sifra = tabela2.sifra
)
ELSE (
SELECT tabela3.naziv
FROM baza3.tabela3
WHERE tabela1.sifra = tabela3.sifra
)
END FROM baza1.tabela1,baza2.tabela2,baza3.tabela3

Moze li mi neko reci gde sam pogresio? Mysql mi kaze da je greska u 4. redu.
Hvala
stivi.on.neobee.net
31.05.2004. u 09:17 

_owl_
Centar - BG

Član broj: 318
Poruke: 989
*.drenik.net

Sajt: home.drenik.net/~owl


Profil

icon Re: mysql i naredba CASE31.05.2004. u 09:24
Pa moze biti da MySQL ne podrzava subquery-e, a moze biti da tvoja komanda i nije bas sintaksno ispravna (sta ako subquery ne vrati tacno jedan red)
Owl
31.05.2004. u 09:24 

NetworkAdmin
Zoran Knezevic
programer u jednoj X kompaniji, radim na daljinu onli..
Beograd

Član broj: 4445
Poruke: 609
*.bbone.utic.net.ba.

Sajt: www.rentalio.com


Profil

icon Re: mysql i naredba CASE31.05.2004. u 14:40
koja je verzija mysql servera?
31.05.2004. u 14:40 

Dejan Topalovic
Dejan Topalović
Oracle DBA & PL/SQL Developer, Erste Sparinvest (..
Vienna

Član broj: 635
Poruke: 1374
*.1.14.vie.surfer.at

ICQ: 20142302
Sajt: www.outsourcing-it.com


Profil

icon Re: mysql i naredba CASE31.05.2004. u 18:38
Hm, stvarno cudan query :)
Kao prvo, kopiraj nam gresku koju ti ispise. Da nije mozda ova greska:
ERROR 1109 (42S02): Unknown table 'tabela1' in where clause ?

Zatim, kao sto su vec neke kolege rekle, navedi verziju mysql servera.

Na kraju, CASE naredbu zavrsavaj sa END CASE, a ne samo END.

Ne bi bilo lose da nam kazes ukratko sta zapravo zelis postici, pa cemo ti mozda dati i efikasniji query.
31.05.2004. u 18:38 

stex

Član broj: 718
Poruke: 264
*.zrlocal.net

Sajt: stivi.on.neobee.net


Profil

icon Re: mysql i naredba CASE01.06.2004. u 06:24
Mysql-a (3.23.56)

Treba mi ovako nesto:
SELECT sifra,
CASE WHEN STATUS = 0
THEN (
"true"
)
ELSE (
"false"
)
END FROM `tabela1`

Sa tim sto umesto "true", treba da stoji podupit koji ce iz druge tabele (i iz druge baze) vuci neko polje i umesto "false" stojati drugi uput koji ce iz neke druge tabele (i trece baze) vuci neko polje.

Ako treba da se upgrejduje mysql, jel ima nekih opasnosti za tekuce baze? OS je RH8.
stivi.on.neobee.net
01.06.2004. u 06:24 

utvara
Slobodan Utvić
Vivvo CMS lead developer, Spoonlabs d.o.o. Beograd

Član broj: 677
Poruke: 87
*.sbb.co.yu
Via: [es] mailing liste

Jabber: utvara@elitesecurity.org
ICQ: 28140625
Sajt: utvara.blogspot.com


Profil

icon Re: mysql i naredba CASE01.06.2004. u 10:51
Obzirom da imas samo dva izbora mozes da koristis IF, mislim da
sledeci query radi ono sto ti treba, verovatno ga treba jos doraditi.


SELECT baza1.tabela1.sifra,
IF (baza1.tabela1.status = 0, baza2.tabela2.naziv, baza3.tabela3.naziv) as naziv
FROM baza1.tabela1,baza2.tabela2,baza3.tabela3
WHERE (baza1.tabela1.sifra = baza2.tabela2.sifra
AND baza1.tabela1.sifra = baza3.tabela3.sifra)

poz, utvara

--
Sve najlepse,
Best regards,
Slobodan mailto:utvara@ns.sbb.co.yu
01.06.2004. u 10:51 

Dejan Topalovic
Dejan Topalović
Oracle DBA & PL/SQL Developer, Erste Sparinvest (..
Vienna

Član broj: 635
Poruke: 1374
*.1.14.vie.surfer.at

ICQ: 20142302
Sajt: www.outsourcing-it.com


Profil

icon Re: mysql i naredba CASE01.06.2004. u 10:59
Moras upgrade-ovati MySQL server, jer su podupiti (subqueries) podrzani tek od verzije 4.1.

Osim toga, izgleda da CASE ne mora da zavrsava sa END CASE. U dokumentaciji pise da mora da zavrsava sa END CASE, ali kod mene ne radi sa tim, nego samo sa END. Verzija je 4.1.1a-alpha-nt, a i u verzijama 3.23.* je izgleda isto tako.

Korektna sintaksa za tvoj CASE bi bila:
Code:

SELECT
CASE status
WHEN 0
THEN "nula"
ELSE "nije nula"
END
FROM tabela1

01.06.2004. u 10:59 

stex

Član broj: 718
Poruke: 264
*.zrlocal.net

Sajt: stivi.on.neobee.net


Profil

icon Re: mysql i naredba CASE01.06.2004. u 11:21
Citat:
Obzirom da imas samo dva izbora mozes da koristis IF, mislim da
sledeci query radi ono sto ti treba, verovatno ga treba jos doraditi.

SELECT baza1.tabela1.sifra,
IF (baza1.tabela1.status = 0, baza2.tabela2.naziv, baza3.tabela3.naziv) as naziv
FROM baza1.tabela1,baza2.tabela2,baza3.tabela3
WHERE (baza1.tabela1.sifra = baza2.tabela2.sifra
AND baza1.tabela1.sifra = baza3.tabela3.sifra)


Sa IF-om sam i uradio.
ne znam zasto sam i bio pocinjao sa CASE-om.

stivi.on.neobee.net
01.06.2004. u 11:21 

[es] :: MySQL :: mysql i naredba CASE

[ Pregleda: 1404 | Odgovora: 7 ]

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.