O ile nie chcesz powielić wartości, jak sugeruje Igoel (co może nie być idealne, jeśli wartość jest długa), prosta odpowiedź brzmi nie .
Jedną z krótko zachęcających możliwości było użycie aliasu NOWOŚĆ
do reprezentowania wartości przychodzących, aby końcowa wartość mogła zostać zduplikowana bez konieczności ponownego przedstawiania jej w zapytaniu (i mam nadzieję, że zostanie to usunięte przez optymalizator zapytań):
UPDATE `myTable` SET
`Field1` = "value",
`Field2` = "value",
`Field3` = "value",
--- `Field3` = NEW.`Field3`
WHERE `Field4` = "value";
Niestety, nie jest to obsługiwane w UPDATE
oświadczenie, tylko wewnątrz ciała wyzwalającego.
Będziesz musiał dokonać manipulacji w swoim C++ przed wykonaniem instrukcji, albo poprzez zamianę znaków (,
dla ) lub usunięcie znaku; to pierwsze może generować bardziej złożony kod niż masz teraz, a drugie może być nieefektywne (w zależności od struktury twojego kodu do tworzenia zapytań), ale nadal jest to najlepsza opcja.