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

Mysql SQL查询:使用concatenate和strcmp比较字符串,mysql,sql,Mysql,Sql,我试图比较两组字符串,并希望将状态列更新为“相同”或“更改”或“更改” 我尝试使用strcmp和concat,如下图所示,但语法错误一直被提示出来 有人知道如何同时使用strcmp和concat吗 我的代码: UPDATE DMGE1314 SET status2 = case when concat(KodDM14,NamaDM14) = CONCAT(KodDM13,NamaDM13) then "NO CHANGED", when strcmp(conc

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

我尝试使用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

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

你在第二个逗号之前有一个错误的逗号

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

你为什么不使用简单的比较呢

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。

为什么不使用简单的比较

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。

您可以共享确切的错误消息吗?它说:at-strcmp之间的语法错误直到不喜欢“0”您可以共享确切的错误消息吗?它说:at-strcmp之间的语法错误直到不喜欢“0”谢谢,它工作得很好。我添加了逗号,但不知道它会导致语法错误。看起来我必须更加小心逗号。非常感谢scaisEdge,它工作得非常好。我添加了逗号,但不知道它会导致语法错误。看起来我必须更加小心逗号。因为我想我要更新各种状态,例如“拼写不同”、“代码更改”、“名称更改”。所以我认为这需要由strcmp()@SyahirahAR来完成。我不这么认为。我不记得上次使用strcmp()是什么时候了。因为我想我想更新各种状态,例如“拼写不同”、“代码更改”、“名称更改”。所以我认为这需要由strcmp()@SyahirahAR来完成。我不这么认为。我不记得上次使用strcmp()是什么时候了。