Mysql
 sql >> база данни >  >> RDS >> Mysql

Има ли трик, който да позволи на MySQL да игнорира крайна запетая в клаузата SET на оператор UPDATE?

Освен ако не желаете да дублирате стойност, както предлага Игоел (което може да не е идеално, ако стойността е дълга), простият отговор е не .

Една накратко обнадеждаваща възможност беше използването на псевдонима NEW за представяне на входящите стойности, така че крайната стойност да може да бъде дублирана, без всъщност да се налага да я представя отново в заявката (и аз се надявам, че това ще бъде премахнато от оптимизатора на заявки):

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

Уви, това не се поддържа в UPDATE изявление, само вътре в тялото на тригера.

Ще трябва да извършите манипулацията във вашия C++, преди да изпълните оператора, или чрез подмяна на знаци (, за ) или премахване на знаци; първият може да създаде по-сложен код, отколкото имате сега, а вторият може да е неефективен (в зависимост от структурата на кода ви за изграждане на заявки), но все пак това е най-добрият ви залог.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL заявка:Съпоставете стойност, разделена със запетая, с колона, съдържаща низ, разделен със запетая

  2. Как работи HANDLER FOR NOT FOUND и за какво се използва?

  3. Как работи функцията REGEX_REPLACE() в MySQL

  4. Как мога да се свържа с MySQL база данни с помощта на Scala?

  5. Как да коригирате MySql:размерът на индексната колона е твърде голям (Laravel мигриране)