gpt4 book ai didi

php - 仅当字段的旧值与新值不匹配时才使用 CASE 语句更新 MySQL 记录?

转载 作者:行者123 更新时间:2023-11-29 07:52:47 26 4
gpt4 key购买 nike

我正在构建一个 PHP 函数,它将用于批量“完成”属于特定项目的项目任务。

如果项目有 50 条任务记录,那么我当前的解决方案将更新所有 50 条记录,将 status 列设置为 Completed 并将 date_modified列到当前的 DateTime。这个新的 date_modified 值也会不正确,因为只有部分状态实际上比之前的值发生了变化!

我想构建一个 SQL 查询来代替...

  • 仅更新尚未设置为状态的更新记录 === 已完成
  • date_modified 字段相同,它应该只更新现在实际更新的记录的日期时间!

这是我从另一个查询中取出的 SQL 的一部分,该查询执行了完全不同的操作,但它确实具有正确的表和字段名称,并演示了 CASE 语句 如何成为正确的路径。然而,我对 MySQL 的了解还不够,无法自己完成如此高级的查询,并且非常感谢我能得到的所有帮助!

最佳答案

“更新状态未完成的任务的状态和日期”很容易翻译成:

更新任务 SET status = 'Completed', date_modified = NOW() WHERE status != 'Completed'

(您还可以设置您的 date_modified 列,以便每次更新时自动更新到当前时间戳。没有找到文档链接,但搜索“on update current_timestamp” )

关于php - 仅当字段的旧值与新值不匹配时才使用 CASE 语句更新 MySQL 记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25987019/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com