MySQL中多个案例的语法

时间:2015-10-27 18:07:42

标签: mysql sql sql-update syntax-error case

我有一个MySQL更新语句,它试图重置两列:label和PersTrCode。 (这是在Coldfusion程序中。)我正在使用CASE语句执行此操作,但我似乎无法正确使用语法 - 我一直收到错误。代码:

<cfquery name = 'nonull' datasource = "Moxart">
update FinAggDb
set Label = CASE 
 WHEN PersActIncOutg = 'I' && PersTrCode IS NULL THEN 'Total Income'
 WHEN PersActIncOutg = 'O' && PersTrCode IS NULL THEN 'Total Expense'
 WHEN PersActIncOutg IS NULL && PersTrCode IS NULL THEN ' '
 ELSE PersTrCode
END 
SET PersTrCode = CASE 
 WHEN PersTrCode IS NULL THEN 'Total'
 ELSE PersTrCode
END 
</cfquery>

错误是通常的信息性陈述:

  

您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,以便在“SET PersTrCode = CASE WHEN PersTrCode IS NULL THEN”附近使用正确的语法'第8行的''ELSE PersTrCode'总计

是否不允许多个CASE语句?或者有人能告诉我如何解决这个问题吗?

1 个答案:

答案 0 :(得分:2)

更新语句只有一个Flush()子句,您要更新的各个列用逗号分隔。另请注意,使用set而不是and更常见,尽管两者在MySQL中都有效:

&&