我正在尝试比较两组字符串,并希望将状态列更新为“相同”或“更改”或“更改”。
我已尝试在图片中使用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
答案 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,具体取决于字符串的顺序。