【发布时间】:2014-08-14 23:16:43
【问题描述】:
考虑这样的表格:
id 列设置为自动递增,update_time 列应该是该行插入表中的日期。
我想简单地获取 user_id = x 的用户的最新条目,我发现有一些方法:
SELECT * FROM mytable WHERE user_id = x ORDER BY update_time DESC LIMIT 1
还有
SELECT * FROM mytable WHERE user_id = x MAX(update_time)
另一个查询将选择具有最高 id 号的行
我不太确定后面那个的语法(请纠正我)。
这似乎是一项微不足道的任务,但是有一个案例是其他人更改了 table 上的 auto_increment 值,有时服务器的时间也发生了变化(这在我的案例中没有发生,但是什么如果是!!?)
获取 user_id 的最新条目行最安全的查询是什么(我的意思是为 user_id = x 的用户返回 weight、height 和 activity_level 的查询)
我需要在表格中添加更多列吗?如果有,是什么?
【问题讨论】:
-
您的 user_id 是唯一字段吗?你所说的“我只想为 user_id = x 的用户获取最新条目”让我觉得可能有重复的 user_id
-
如果是唯一的,改变自动增量键或者改变update_time都没有关系。您总是会为该用户获得相同的价值。
标签: mysql sql select sql-order-by