sql >> Databasteknik >  >> RDS >> Mysql

Finns det ett knep för att tillåta MySQL att ignorera ett avslutande kommatecken i SET-satsen i en UPDATE-sats?

Om du inte är villig att duplicera ett värde som Igoel föreslår (vilket kanske inte är idealiskt om värdet är långt), är det enkla svaret nej .

En kortfattat uppmuntrande möjlighet var användningen av aliaset NEW för att representera de inkommande värdena, så att det slutliga värdet kan dupliceras utan att faktiskt behöva presentera det i frågan igen (och jag hoppas att detta skulle tas bort av frågeoptimeraren):

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

Tyvärr, detta stöds inte i en UPDATE uttalande, endast inuti en utlösarkropp.

Du måste göra manipulationen i din C++ innan du kör satsen, antingen genom teckenersättning (, för ) eller borttagning av tecken; den förra kan producera mer komplex kod än du har nu, och den senare kan vara ineffektiv (beroende på strukturen i din frågebyggande kod), men det är fortfarande din bästa insats.



  1. Hitta dubbletter i en kolumn

  2. Infogar NOW() i databasen med CodeIgniters Active Record

  3. Hur man hittar hierarkivägen för en trädrepresentation

  4. Python SQLAlchemy - MySQL-servern har försvunnit