Je ne suis même pas sûr si c'est possible mais j'essaie de faire une mise à jour différente si une certaine condition est remplie.MySQL UPDATE en utilisant la condition IF
utilisateur [id, start_date (NOT NULL), date_fin (NULL), la raison (NULL), .....]
user_roles [id, role_id, user_id, start_date (NOT NULL), date_fin (NULL)]
ce que j'est en ce moment cela, mais cela ne fonctionne que si un rôle existe pour l'utilisateur et il est date_fin est NULL:
UPDATE user p
JOIN user_roles ur ON p.id = ur.user_id
SET ur.end_date = NOW()
, p.end_date = NOW()
, p.reason = "Retired"
WHERE p.id = 5
AND ur.end_date IS NULL
Je pensais faire quelque chose comme ceci:
IF EXISTS (SELECT id FROM user_roles
WHERE user_id = 5 AND end_date IS NULL)
THEN
UPDATE user p
JOIN user_roles ur ON p.id = ur.user_id
SET ur.end_date = NOW()
, p.end_date = NOW()
, p.reason = "Retired"
WHERE p.id = 5 AND ur.end_date IS NULL
ELSE
UPDATE user
SET end_date = NOW()
, reason = "Retired"
WHERE id = 5
END IF
@APC, je faisais même chose = –