Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Existe um truque para permitir que o MySQL ignore uma vírgula à direita na cláusula SET de uma instrução UPDATE?


A menos que você queira duplicar um valor como Igoel sugere (o que pode não ser ideal se o valor for longo), a resposta simples é não .

Uma possibilidade brevemente encorajadora foi o uso do o alias NEW para representar os valores recebidos, para que o valor final possa ser duplicado sem realmente ter que apresentá-lo na consulta novamente (e espero que isso seja retirado pelo otimizador de consulta):
UPDATE `myTable` SET 
   `Field1` = "value",
   `Field2` = "value",
   `Field3` = "value",
--- `Field3` = NEW.`Field3`
WHERE `Field4` = "value";

Infelizmente, isso não é suportado em um UPDATE declaração, apenas dentro de um corpo de gatilho.

Você terá que fazer a manipulação em seu C++ antes de executar a instrução, seja por meio de substituição de caracteres (, para ) ou remoção de caracteres; o primeiro pode produzir um código mais complexo do que você tem agora, e o último pode ser ineficiente (dependendo da estrutura do seu código de construção de consulta), mas ainda é sua melhor aposta.