Pogledajte određenu poruku
Staro 14. 12. 2012.   #1
etelteam
novi član
Na probnom radu
 
Datum učlanjenja: 17.05.2012
Poruke: 18
Hvala: 4
0 "Hvala" u 0 poruka
etelteam is on a distinguished road
Default IF u SQL upitu

Pozdrav svima,

Imam sledeci problem. Imam slican upit, nemam ga sada pri sebi, ali ide ovako
Kôd:
UPDATE tabela
SET status = (IF status = 'B', 'N', 'B'),
        rate = (IF status = 'B', '-100', ''),
        date = (IF status = 'B', NOW(), '0000-00-00')
WHERE country = 'bla bla'
Cilj je bio sledeci - treba da uradim update nad tabelom, ali ako je status B upisi jedne vrednosti a ako je drugi neki status, upisi druge vrednosti.

Ovde ne valja sledece. Zamislimo da imam 10 unosa, od kojih 2 imaju status B.
Kada se izvrsi upit u oba se promeni status u N, ali ostale kolone ne, vec se ponasa kao da ne postoji status B, pa ne upisuje NOW, -100, ali zato obe dobiju N status. Znaci samo prodje ovo status = (IF status = 'B', 'N', 'B'), kako treba dok ostale i ne vidi. Nije mi jasno gde bas gresim i da li mogu da imam ovakav upit sa vise IF iskaza.

Znaci upit prodje , izvrsi update ali tacan samo za prvi iskaz.

Ja sam mogao to da uradim da vratim prvo niz iz tabele, pa zavisno od statusa napravim novi niz pa uradim update. Ali mislio sam da moze to ovako na jedan upit.
etelteam je offline   Odgovorite uz citat