A menos que esté dispuesto a duplicar un valor como sugiere Igoel (que puede no ser ideal si el valor es largo), la respuesta simple es no .
Una posibilidad brevemente alentadora fue el uso de el alias NEW
para representar los valores entrantes, de modo que el valor final pueda duplicarse sin tener que volver a presentarlo en la consulta (y espero que el optimizador de consultas lo elimine):
UPDATE `myTable` SET
`Field1` = "value",
`Field2` = "value",
`Field3` = "value",
--- `Field3` = NEW.`Field3`
WHERE `Field4` = "value";
Por desgracia, esto no se admite en un UPDATE
instrucción, solo dentro de un cuerpo desencadenante.
Tendrá que hacer la manipulación en su C++ antes de ejecutar la declaración, ya sea mediante el reemplazo de caracteres (,
para ) o eliminación de caracteres; el primero puede producir un código más complejo que el que tiene ahora, y el segundo puede ser ineficiente (dependiendo de la estructura de su código de creación de consultas), pero sigue siendo su mejor opción.