php - 想要使用两个具有多个值的条件进行更新

标签 php mysql

我正在构建一个显示单位状态的状态系统,如果您按下按钮,如果您的名字类似于该任务的角色之一,任务的状态就会更新。但是我不希望状态降级,它需要显示最新状态。所以我想做的是这样的

更新状态 设置 status=cleared,其中 jobtask1=name 或 jobtask2=name AND status=in_progress OR 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=''

因此,它会检查其中一个人是否是更新状态的人,或者状态是否类似于指定的状态之一。我希望它检查该人是否类似于更新状态的人,如果是,则检查状态是否类似于指定的状态之一,如果两者都正确则更新状态。

最佳答案

您可以尝试使用 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

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

关于php - 想要使用两个具有多个值的条件进行更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55808159/

相关文章:

php - 需要与函数调用的内联代码

php - 使用 laravel voyager 管理面板部署 web 应用程序

php - 如何正确从mysql底部轴上获取时间序列数据

php - Html/Php 使用 mysql 查询添加下拉列表

mysql - mysql中出现重复记录

MYSQL:在存储过程中并行执行多个语句?

mysql - 替换最后一个 '/' 之前的所有内容,其中在一列中包含特殊网站

php shell_exec() 在后台运行脚本所需的帮助

登录时mysql server 8.0 key 环迁移错误

MySQL - 按多个类别(多行......)更快地搜索产品?