Ver Mensaje Individual
  #1 (permalink)  
Antiguo 31/08/2011, 13:09
Avatar de mayid
mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 8 meses
Puntos: 101
ON DUPLICATE KEY UPDATE condicional en un INSERT multiple

Necesito insertar cientos de datos en mysql, y por eso uso un INSERT con varios valores separados por coma. Ahora, quiero hacer un UPDATE en caso de que el campo comm_state sea 0.

Vi por ahi que se puede usar IF para definir valores del UPDATE, pero eso no aplica a mi caso. Por otro lado, existe otro IF, que es el que estoy tratando de usar en lo que publico seguidamente, pero nunca lo vi aplicado a un caso así. Será posible lograrlo?

Código MySQL:
Ver original
  1. INSERT INTO Commissions  (client_id, comm_date, comm_amount, comm_payed, commf_id)  
  2. VALUES ( (SELECT client_id FROM Clients WHERE client_CISid = 80400028),2011-8-1,6785.415,0,50),
  3.        ( (SELECT client_id FROM Clients WHERE client_CISid = 80400033),2011-8-1,431.37,0,50),
  4.        ( (SELECT client_id FROM Clients WHERE client_CISid = 80400039),2011-8-1,880.245,0,50),( (SELECT client_id FROM Clients WHERE client_CISid = 80400160),2011-8-1,165.78,0,50),( (SELECT client_id FROM Clients WHERE client_CISid = 80400172),2011-8-1,268.425,0,50)
  5.  
  6.   IF comm_payed = 0 THEN
  7.  
  8.  
  9.   comm_amount = VALUES(comm_amount),  comm_payed = 0,  commf_id = 50  
  10.  
  11.   END IF