2017-08-12 78 views
0

这里是我的表:我怎样才能获得最大的价值?

-- log 
+----+---------+------------+ 
| id | user_id | seen | 
+----+---------+------------+ 
| 1 | 2342 | 1442664886 | 
| 2 | 3244 | 1442665851 | 
| 3 | 2342 | 1442711823 | 
| 4 | 7654 | 1442864219 | 
| 5 | 3244 | 1442954080 | 
| 6 | 9984 | 1442984716 | 
+----+---------+------------+ 

我想最大的上线时间为特定用户如最后出现。我能做到这一点通过这两个查询:

首先查询:

SELECT seen AS last_seen 
FROM log 
WHERE user_id = :id 
ORDER BY seen DESC 
LIMIT 1 

第二个查询:

SELECT MAX(seen) AS last_seen 
FROM log 
WHERE user_id = :id 

嗯哪一个是标准的方式?我应该去哪一个?演出有没有什么不同?

回答

2

他们都很好。两者都将利用log(user_id, seen)上的索引。

第一个通常是可取的,因为您可以拉整行并从其他列获取信息。

+0

不是OP,但是如果你让我问,'ORDER BY DESC'会不会比定位操作花费更多的时间? – Ali

+0

@Ali查看详细答案的重复主题。 – Shadow

相关问题