Освен ако не желаете да дублирате стойност, както предлага Игоел (което може да не е идеално, ако стойността е дълга), простият отговор е не .
Една накратко обнадеждаваща възможност беше използването на псевдонима NEW
за представяне на входящите стойности, така че крайната стойност да може да бъде дублирана, без всъщност да се налага да я представя отново в заявката (и аз се надявам, че това ще бъде премахнато от оптимизатора на заявки):
UPDATE `myTable` SET
`Field1` = "value",
`Field2` = "value",
`Field3` = "value",
--- `Field3` = NEW.`Field3`
WHERE `Field4` = "value";
Уви, това не се поддържа в UPDATE
изявление, само вътре в тялото на тригера.
Ще трябва да извършите манипулацията във вашия C++, преди да изпълните оператора, или чрез подмяна на знаци (,
за ) или премахване на знаци; първият може да създаде по-сложен код, отколкото имате сега, а вторият може да е неефективен (в зависимост от структурата на кода ви за изграждане на заявки), но все пак това е най-добрият ви залог.