Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 在相同条件下更新多个字段(如果或情况)_Mysql_If Statement_Sql Update_Case - Fatal编程技术网

Mysql 在相同条件下更新多个字段(如果或情况)

Mysql 在相同条件下更新多个字段(如果或情况),mysql,if-statement,sql-update,case,Mysql,If Statement,Sql Update,Case,我需要一些帮助。这里有一些关于这个主题的问题和答案,但没有找到一个适合我需要的 我有两个疑问: 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

我需要一些帮助。这里有一些关于这个主题的问题和答案,但没有找到一个适合我需要的

我有两个疑问:

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
更新leilaov
设置秒数=大小写

不幸的是,当(mesini=MONTH(NOW())和diaini=DAYOFMONTH(NOW())以及horaini=HOUR(NOW())和minutoini时,您需要为尝试设置的每个字段重复您的案例。因此,您需要执行以下操作:

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,
, second_field = 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
更新leilaov
设置秒数=大小写

当(mesini=MONTH(NOW())和diaini=DAYOFMONTH(NOW())和horaini=HOUR(NOW())时minutoini感谢@Dany Caissy。关于你对表格结构的评论,不幸的是,它被继承了。再次感谢@Dany Caissy。你对表格结构的评论让我想,为什么我会理所当然地认为我继承了什么?猜猜看,我重建了那个结构,编码现在更短、更容易、更可读,而且,作为奖励,p表现也更好。;)酷,别忘了向上投票或接受你喜欢的答案。再次你好@Dany Caissy!天哪!!!我在这方面真的是个新手。我在哪里或如何向上投票?我的答案左上角有一个“向上”和一个“向下”箭头,在“0”附近。你也可以选择接受附近的答案。