UPDATE crm_accounts
SET
reg = "Sim"
WHERE age >= 17
AND age <= 35
AND balance > 0.00
AND type = "Júnior";
UPDATE crm_accounts
SET
reg = "Não"
WHERE age >= 17
AND age <= 35
AND balance = 0.00
AND type = "Júnior";
UPDATE crm_accounts
SET
type = "Efetivo"
WHERE age >= 17
AND age <= 35
AND type = "Júnior";
该语句用于此目的,但我想简化并合并到一个案例语句中。有什么帮助吗?谢谢。
最佳答案
看起来你想要这样的东西:
UPDATE crm_accounts a
SET a.reg
= CASE
WHEN a.balance > 0.00 THEN 'Sim'
WHEN a.balance = 0.00 THEN 'Não'
ELSE a.reg
END
, a.type = 'Efetivo'
WHERE a.age >= 17
AND a.age <= 35
AND a.type = 'Júnior'
每当我写这样的更新语句时,我总是先测试 SELECT 语句中的表达式和谓词,然后验证结果。在将其转换为 UPDATE 语句之前,我确保一切都按我需要的方式工作。
SELECT a.age >= 17
, a.type
, a.reg AS old_reg
, CASE
WHEN a.balance > 0.00 THEN 'Sim'
WHEN a.balance = 0.00 THEN 'Não'
ELSE a.reg
END AS new_reg
FROM crm_accounts a
WHERE a.age >= 17
AND a.age <= 35
AND a.type = 'Júnior'
关于mysql - 使用 Case 语句更新表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39796083/