【发布时间】:2015-03-26 18:45:06
【问题描述】:
需要帮助。这里有一些关于这个主题的问题和答案,但没有找到适合我需要的。
我有这两个问题:
UPDATE leilaov
SET seconds = CASE
WHEN (mesini = MONTH(NOW()) AND diaini = DAYOFMONTH(NOW()) AND horaini = HOUR(NOW()) AND minutoini <= MINUTE(NOW()))
OR (mesini = MONTH(NOW()) AND diaini < DAYOFMONTH(NOW()))
OR (mesini = MONTH(NOW()) AND diaini = DAYOFMONTH(NOW()) AND horaini < HOUR(NOW()))
OR (mesini < MONTH(NOW())) THEN seconds-1
END
WHERE numero12345 = 1
UPDATE leilaov
SET seconds = IF((mesini = MONTH(NOW()) AND diaini = DAYOFMONTH(NOW()) AND horaini = HOUR(NOW()) AND minutoini <= MINUTE(NOW()))
OR (mesini = MONTH(NOW()) AND diaini < DAYOFMONTH(NOW()))
OR (mesini = MONTH(NOW()) AND diaini = DAYOFMONTH(NOW()) AND horaini < HOUR(NOW()))
OR (mesini < MONTH(NOW())), seconds-1, seconds)
WHERE numero12345 = 1
两者都工作正常,执行时间没有显着差异。 问题是我需要更新几个字段而不仅仅是一个。
更新多个字段的语法是什么?我必须对每个字段重复条件吗?
我应该使用 CASE 还是 IF?还是有更好的选择?
提前致谢。
【问题讨论】:
标签: mysql if-statement sql-update case