我在表格中有 5 列,id、address、lat、lng、timesetamp
,当两行在 lat
和lng
列。
MySQL 查询
SELECT address, lat, lng FROM table GROUP BY lat, lng
问题:我设法让它通过这个查询只返回唯一的行。然而,结果似乎是最早插入数据库的重复行。如何让 MySQL 返回最新的重复行?类似于返回具有最新 timestamp
最佳答案
这应该为每个纬度/经度组合获取具有最新时间戳的行,而不管每个组合有多少行。
SELECT
[what you want to know about the latest row]
FROM
table t1
INNER JOIN
(
SELECT
lat,
long,
max(timestamp) as latest
FROM
table
GROUP BY
lat,
long
) as t2
ON (
t1.lat=t2.lat AND
t1.long=t2.long AND
t1.timestamp=t2.latest
)
如果您只想要具有重复组合的行,则需要调整子查询以计算 GROUPed 行并使用 HAVING 来过滤它们。
关于php - 使用 Group By 并返回最新的副本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8152306/