【发布时间】:2020-07-19 04:28:23
【问题描述】:
我正在使用 mySQL v5.7.29 MySQL 社区服务器 (GPL)
我有一个表,我在其中创建了一个唯一索引以避免在以下列(除时间戳Updated 之外的所有列)上插入重复值:
CREATE UNIQUE INDEX daily_unique ON daily(`Contract Date`, `Delivery`, `Product`, `Region`, `Price`)
我需要通过更新(时间戳)选择最新的记录。
我尝试了以下方法:
SELECT * FROM daily
WHERE updated = ( SELECT max(Updated) FROM daily )
但是,因为有多个Delivery、Product、Region,上面的不行。
以下是记录的摘录:
Contract Date Delivery Product Region Price Updated
0 2020-04-06 2020-04-01 A B 1 2020-04-06 23:00:17
1 2020-04-06 2020-04-01 A B 2 2020-04-07 10:30:16
我需要查询只返回最新的记录(每组交货、产品和地区应该只返回一个合同日期和价格)。
Contract Date Delivery Product Region Price Updated
1 2020-04-06 2020-04-01 A B 2 2020-04-07 10:30:16
【问题讨论】:
-
什么是dialy:一个表,一个属性?我看到了: WHERE daily = ... 但没有一个名为 like 的属性
-
我很抱歉 - 更新的是我希望选择 max on 的属性,每天是表名