【发布时间】:2018-10-21 23:00:32
【问题描述】:
我有一张表placed_order,其中包含order_time(时间戳)、estimated_delivery_time(时间戳)等列。在第二个表addresses 中有zone 列(除了其他)。
zone 列是一个 ENUM 字段,包含值“Zone 1”、“Zone 2”、“Zone 3”。
现在我需要计算estimated_delivery_time。根据区域的不同,它是order_time 加上 10 分钟(1 区)、15 分钟(2 区)或 20 分钟(3 区)。
我已经知道如何通过手动添加分钟来计算estimated_delivery_time:
UPDATE `placed_order`
SET `estimated_delivery_time` = DATE_ADD(`order_time`, INTERVAL 10 MINUTE)
WHERE placed_order_id = 9;
但我绝对很难找到如何根据区域计算 estimated_delivery_time 的解决方案。我已经尝试使用 SELECT IF 和 CASE 子句,但找不到方法。有什么建议吗?
【问题讨论】:
-
查看multitable update 语法和case 语句以将区域解析为时间间隔。
-
如何连接两个表?什么是join关系?
-
两个表都有“customer_id”(来自第三个表“客户”的 PK 作为外键。这足以连接它们吗?
-
@dandelia 检查发布的答案。谢谢
-
@MadhurBhaiya 它有效!我非常感谢您的快速帮助!非常感谢!
标签: mysql enums sql-update dateadd