这是我的表:
-- 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
哪一个是标准方式?我应该选择哪一个?表现有什么不同吗?
答案 0 :(得分:2)
他们都很好。两者都将利用log(user_id, seen)
上的索引。
第一种通常更可取,因为您可以拉入整行并从其他列获取信息。