Mysql
 sql >> Database >  >> RDS >> Mysql

Esiste un trucco per consentire a MySQL di ignorare una virgola finale nella clausola SET di un'istruzione UPDATE?

A meno che tu non sia disposto a duplicare un valore come suggerisce Igoel (che potrebbe non essere l'ideale se il valore è lungo), la risposta semplice è no .

Una possibilità brevemente incoraggiante è stata l'uso di l'alias NEW per rappresentare i valori in entrata, in modo che il valore finale possa essere duplicato senza doverlo effettivamente presentare nuovamente nella query (e mi auguro che questo venga eliminato da Query Optimizer):

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

Purtroppo, questo non è supportato in un UPDATE istruzione, solo all'interno di un corpo trigger.

Dovrai eseguire la manipolazione nel tuo C++ prima di eseguire l'istruzione, sia tramite la sostituzione dei caratteri (, per ) o rimozione del personaggio; il primo potrebbe produrre un codice più complesso di quello che hai ora e il secondo potrebbe essere inefficiente (a seconda della struttura del codice di creazione delle query), ma è comunque la soluzione migliore.