想要使用两个条件同时更新多个值

时间:2019-04-23 09:28:38

标签: php mysql

我正在建立一个状态系统,以显示单位的状态,如果您按一个按钮,则任务的状态将更新,前提是您的姓名像该任务的角色之一。但是我不希望状态降级,它需要显示最新状态。所以我想做的就是这样

更新状态设置状态=已清除,其中jobtask1 = name或jobtask2 = name AND status = in_progress或status = in_wait

UPDATE data 
SET status='cleared' WHERE person1='$name' OR person2='$name' OR person3='$name' OR person4='$name' 
AND status='in_progress' OR status='preparation' OR status='in_wait' OR 
status=''

因此,这将导致检查人员之一是更新状态的人员,还是状态类似于指定的状态之一。我希望它检查人员是否像更新状态的人员那样,如果是,则检查状态是否类似于指定的状态之一,并且两者是否正确都更新状态。

2 个答案:

答案 0 :(得分:0)

您可以尝试使用SWITCH CASE逻辑

UPDATE data 
SET status = 
     CASE 
         WHEN (person1='$name' OR person2='$name' OR person3='$name' OR person4='$name') THEN 'cleared' 
         WHEN (<second_condition>) THEN 'in_progress'
         ...
         ELSE ''
     END

您还应该考虑根据规范化原则重新设计数据库。

答案 1 :(得分:0)

感谢Salman和nacho提供的解决方案,我只需要添加括号即可。