我有一个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
语句?或者有人能告诉我如何解决这个问题吗?
答案 0 :(得分:2)
更新语句只有一个Flush()
子句,您要更新的各个列用逗号分隔。另请注意,使用set
而不是and
更常见,尽管两者在MySQL中都有效:
&&