SQL查询:使用concatenate和strcmp比较字符串

时间:2018-03-21 09:10:07

标签: mysql sql

我正在尝试比较两组字符串,并希望将状态列更新为“相同”或“更改”或“更改”。

我已尝试在图片中使用strcmp和concat,但语法错误会一直显示出来。

任何人都知道如何在下面同时使用strcmp和concat?

我的代码:

UPDATE  DMGE1314
SET status2 = 
case 
   when concat(KodDM14,NamaDM14) = CONCAT(KodDM13,NamaDM13) 
        then "NO CHANGED",
   when strcmp(concat(KodDM14,NamaDM14),concat(KodDM13,NamaDM13)) not like "0"  
        then  "spelling different"  else "changed" 
end

enter image description here

2 个答案:

答案 0 :(得分:1)

时,第二行之前的逗号错误
UPDATE DMGE1314 
    SET status2 = case 
            when concat(KodDM14,NamaDM14) = CONCAT(KodDM13,NamaDM13) then "NO CHANGED"
            when strcmp(concat(KodDM14,NamaDM14),concat(KodDM13,NamaDM13)) not like "0" 
                    then "spelling different" 
                else "changed" 
          end

答案 1 :(得分:1)

为什么你没有使用简单的比较?

UPDATE DMGE1314
    SET status2 = (case when KodDM14 = KodDM13 and NamaDM14 = NamaDM13 
                        then 'NO CHANGED',
                        when KodDM14 is null or NamaDM14 is null or KodDM13 is null or NamaDM13 is null
                        then 'NULL' 
                        else  'SPELLING DIFFERENT'
                   end);

如果可以,请使用内置运算符。不要使用strcmp()来比较平等。目的是生成-1,0或1,具体取决于字符串的顺序。