MySQL mise à JOUR de l'aide SI la condition
Je ne suis même pas sûr si c'est possible, mais je suis en train de faire différents types de mise à JOUR si une certaine condition est remplie.
utilisateur [id, date_debut(not NULL), end_date(NULL), raison(NULL), .....]
user_roles [id, role_id, user_id, date_debut(not NULL), end_date(NULL)]
Ce que j'ai pour l'instant mais cela ne fonctionne que si l'existence d'un rôle pour l'utilisateur et il est end_date est NULLE:
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
Je faisais la même chose =)
OriginalL'auteur moleculezz | 2009-12-11
Vous devez vous connecter pour publier un commentaire.
Puisque la seule différence est que vous voulez créer ur.end_Date soit à la Date du jour ou la mise à la date existant pourriez-vous ne pas utiliser seulement les suivantes:
OriginalL'auteur Martin Beeby