有没有一个技巧可以让MySQL“忽略”UPDATE 语句的SET 子句中的尾随逗号?

2024-01-04

从 C++ 中,我正在生成一个UPDATE以编程方式声明,使得剥离尾随逗号变得困难:

UPDATE `myTable` SET 
   `Field1` = "value",
   `Field2` = "value",
   `Field3` = "value",
WHERE `Field4` = "value";

是否有一些静态的、无操作的键/值对可以在最终列值规范之后插入,这将使尾随逗号“okay”?或者我是否必须使我的 C++ 代码复杂化以避免完全编写它?

显然相当于以下无效方法的东西会很好。

UPDATE `myTable` SET 
   `Field1` = "value",
   `Field2` = "value",
   `Field3` = "value",
--- 1 = 1
WHERE `Field4` = "value";

除非您愿意按照 Igoel 的建议复制一个值(如果该值很长,这可能并不理想),简单的答案是no.

一种令人鼓舞的可能性是使用别名NEW http://dev.mysql.com/doc/refman/5.0/en/create-trigger.html来表示传入的值,以便最终值可以重复,而实际上不必再次在查询中呈现它(我希望查询优化器能够将其删除):

UPDATE `myTable` SET 
   `Field1` = "value",
   `Field2` = "value",
   `Field3` = "value",
--- `Field3` = NEW.`Field3`
WHERE `Field4` = "value";

唉,这在UPDATE语句,仅在触发器体内。

在执行语句之前,您必须在 C++ 中进行操作,可以通过字符替换 (, for ) 或删除字符;前者可能会生成比现在更复杂的代码,而后者可能效率低下(取决于查询构建代码的结构),但它仍然是您最好的选择。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

有没有一个技巧可以让MySQL“忽略”UPDATE 语句的SET 子句中的尾随逗号? 的相关文章

随机推荐