【问题标题】:Schedule event to change column in mysql计划事件以更改 mysql 中的列
【发布时间】:2020-04-23 13:05:10
【问题描述】:

我需要根据其他两列日期来更改状态列。

| id | start      | end        | status    |
| 1  | 2020-04-23 | 2020-04-28 | inprogress| -->current date is > than start date and < than end date
| 2  | 2020-02-20 | 2020-02-25 | ended     | -->current date is > than end date
| 3  | 2020-05-15 | 2020-05-20 | upcoming  | -->current date is < than start date

如您所见,我们可以设置 3 种 STATUS 类型,INPROGRESS、ENDED、UPCOMING 有没有办法根据 START 和 END 列设置这些状态? 如果无法做到这一点,您能否建议一种在应用程序中实现此类功能的方法?

【问题讨论】:

  • 你已经差不多了 - 使用 case 语句来测试和设置状态。
  • @P.Salmon 好吧...我应该知道 CASE 声明 xD。你如何建议我应该安排它,以便在应该更改状态时自动执行它。如何确定应该执行事件的时间间隔?我之前从未创建过预定的活动
  • ' 所以当状态应该改变时它会自动执行。' - 设置一个事件并每天运行它见dev.mysql.com/doc/refman/8.0/en/event-scheduler.html

标签: mysql mysql-event


【解决方案1】:

正如 P.Salmon 在评论部分所建议的那样。我使用 CASE 语句并安排它每天运行以达到想要的结果

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-11
    • 1970-01-01
    • 2013-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-10
    相关资源
    最近更新 更多