sql >> Database >  >> RDS >> Mysql

Is er een truc om MySQL toe te staan ​​een volgkomma in de SET-clausule van een UPDATE-instructie te negeren?

Tenzij je bereid bent een waarde te dupliceren zoals Igoel suggereert (wat misschien niet ideaal is als de waarde lang is), het simpele antwoord is nee .

Een korte bemoedigende mogelijkheid was het gebruik van de alias NEW om de binnenkomende waarden weer te geven, zodat de uiteindelijke waarde kan worden gedupliceerd zonder deze daadwerkelijk opnieuw in de query te hoeven presenteren (en ik hoop dat dit door de query-optimizer wordt verwijderd):

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

Helaas wordt dit niet ondersteund in een UPDATE statement, alleen binnen een trigger-body.

U moet de manipulatie in uw C++ doen voordat u de instructie uitvoert, hetzij door tekenvervanging (, voor ) of het verwijderen van tekens; de eerste kan complexere code produceren dan je nu hebt, en de laatste kan inefficiënt zijn (afhankelijk van de structuur van je code voor het bouwen van zoekopdrachten), maar het is nog steeds de beste keuze.



  1. Woocommerce-bestellingen herstellen

  2. MySQL-daemon weigert te starten met Kan server niet starten:Bind op TCP/IP-poort:adres al in gebruik (niet).

  3. Simuleren van MySql's wachtwoord() encryptie met .NET of MS SQL

  4. Voorwaardelijke aggregatieprestaties