Non sono nemmeno sicuro se è possibile, ma sto cercando di fare un AGGIORNAMENTO diverso se viene soddisfatta una determinata condizione.AGGIORNAMENTO MySQL utilizzando la condizione IF
utente [id, start_date (NOT NULL), data_finale (NULL), la ragione (NULL), .....]
user_roles [id, ROLE_ID, user_id, start_date (NOT NULL), data_finale (NULL)]
Quello che ho in questo momento è questo, ma questo funziona solo se esiste un ruolo per l'utente ed è data_finale è 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
stavo pensando di fare qualcosa di simile:
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, stavo facendo stessa cosa =) –