2017-08-12 207 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