有什么方法可以选择性地更新 SQL 语句中的多个字段中的任何一个?我只能做到以下几点:
UPDATE Customer SET
ContactName = ? <=== what to do here if ? is null???
, CompanyName = ? <=== what to do here if ? is null???
, AddressId = ? <=== what to do here if ? is null???
, ...
WHERE CustomerId = ?
由于包装层和 MySQL 的限制,它必须是单个语句。
澄清一下,我想创建一个语句,该语句将使用列出的字段的一个或多个非空值运行,并且将仅更新值不为空的那些字段,而让其他字段不理会。
这是针对 RESTful 更新 API,我不想为每个可能的字段组合单独声明,并且我不想要求 API 调用者提供记录中的每个字段,这将是笨拙的并且不会面向未来(添加一个字段会中断现有的 API 调用)。因为它是一个 REST API,所以我希望映射POST /customer/xxx?ContactName=...&CompanyName=...
以更新记录。