Mysql选择CASE WHEN something then返回字段

Mysql选择CASE WHEN something then返回字段,sql,select,mysql,case,Sql,Select,Mysql,Case,我有两个字段nnmu和nnmi 反过来说 if nnmi is equal to 1, then I need to return naziv_mesta from **mesto_utovara,** else if it's =0 need to return naziv_mesta from mesto_istovara. 起初一切看起来都很好,但不知何故它混淆了值,当nnmi和nnmu都等于0时,它工作,但当其中一个值为1时,它返回无意义。有什么帮助吗 select u.id_ut

我有两个字段nnmu和nnmi

反过来说

if nnmi is equal to 1, then I need  to return naziv_mesta from **mesto_utovara,** 
else if it's =0 need to return naziv_mesta from mesto_istovara.
起初一切看起来都很好,但不知何故它混淆了值,当nnmi和nnmu都等于0时,它工作,但当其中一个值为1时,它返回无意义。有什么帮助吗

select u.id_utovar,
             u.datum_isporuke,
             u.broj_otpremnice,
             r.naziv_robe,              
             CASE u.nnmu 
              WHEN u.nnmu ='0' THEN mu.naziv_mesta
              WHEN u.nnmu ='1' THEN m.naziv_mesta
             ELSE 'GRESKA'
             END as mesto_utovara,
             CASE u.nnmi
              WHEN u.nnmi = '0' THEN m.naziv_mesta 
              WHEN u.nnmi = '1' THEN mu.naziv_mesta
              ELSE 'GRESKA'
             END as mesto_istovara,                                                
             m.adresa,
             m.kontakt_osoba,
             m.br_telefona,
             u.broj_paleta,
             u.bruto,
             k.username,
             u.napomena,                  
             v.registracija,
             p.naziv_prevoznika,
             u.cena,
             u.korisnik_logistika,
             u.korisnik_analitika,
             u.datum_unosa,
             u.vreme_unosa,
             u.zakljucan,
             u.id_mesto_utovara,
             u.id_mesto_istovara,
             u.nnmu,
             u.nnmi             
      FROM utovar u ,mesto_utovara mu, mesto_istovara m, roba r, vozila v,prevoznik p, korisnik k
      WHERE u.id_mesto_istovara=m.id_mesto_istovara
       and k.id_korisnik = u.korisnik
       and r.id_robe=u.id_robe 
       and u.id_mesto_utovara = mu.id_mesto_utovara 
       and v.id_vozilo = u.id_vozilo 
       and p.id_prevoznik = u.id_prevoznik
       ORDER by u.id_utovar DESC
你不恰当地混合了
案例
语法

使用此样式(已搜索)

或这种风格(简单)

不是这样(简单,但使用布尔搜索谓词)

在MySQL中,这将测试
u.nnmu
是否等于布尔表达式
u.nnmu='0'
本身的值。无论
u.nnmu
1
还是
0
大小写表达式本身的结果都将是
1

例如,如果
nmu='0'
,则(
nnmu='0'
)的计算结果为
true
(1),而(
nnmu='1'
)的计算结果为
false
(0)。将这些替换为case表达式

 SELECT CASE  '0'
  WHEN 1 THEN '0'
  WHEN 0 THEN '1'
 ELSE 'GRESKA'
 END as mesto_utovara
 SELECT CASE  '1'
  WHEN 0 THEN '0'
  WHEN 1 THEN '1'
 ELSE 'GRESKA'
 END as mesto_utovara
如果
nmu='1'
,则(
nnmu='0'
)的计算结果为
false
(0),而(
nnmu='1'
)的计算结果为
true
(1)。将这些替换为case表达式

 SELECT CASE  '0'
  WHEN 1 THEN '0'
  WHEN 0 THEN '1'
 ELSE 'GRESKA'
 END as mesto_utovara
 SELECT CASE  '1'
  WHEN 0 THEN '0'
  WHEN 1 THEN '1'
 ELSE 'GRESKA'
 END as mesto_utovara
 SELECT CASE  '0'
  WHEN 1 THEN '0'
  WHEN 0 THEN '1'
 ELSE 'GRESKA'
 END as mesto_utovara
 SELECT CASE  '1'
  WHEN 0 THEN '0'
  WHEN 1 THEN '1'
 ELSE 'GRESKA'
 END as mesto_utovara