从具有最高日期时间值的表中仅选择一行

时间:2014-12-08 10:29:51

标签: mysql sql

我有一张类似于此的表格:

images
    image_id       int
    user_id        int
    datetime       datetime

所以,我只需得到一个结果。此结果应具有特定的user_id,并且应该只是表中的最新行。

我已经检查了很多类似的问题,但无法理解如何操作,而且我发现的代码根本不起作用。

我怎样才能做到这一点?

这是一个开始查询:

SELECT *
FROM image
WHERE user_id = :user_id 

如何更改此查询以仅选择具有特定user_id的最新行?

5 个答案:

答案 0 :(得分:1)

你可以像这样使用order by子句:

SELECT *
FROM image
WHERE user_id = :user_id ORDER BY datetime DESC LIMIT 1

答案 1 :(得分:0)

对于SQL Server,您可以使用:

SELECT TOP(1) *
FROM image
WHERE user_id = :user_id 
ORDER BY datetime DESC

答案 2 :(得分:0)

对于MySQL,请尝试以下操作:

  

SELECT * FROM image
  WHERE user_id =:user_id
  ORDER BY datetime DESC   限制1

limit将与MySQL一起使用

有关MySql语句的更多信息,请查看此处:http://dev.mysql.com/doc/refman/5.0/en/sql-syntax.html

答案 3 :(得分:0)

从图像中选择*        其中User_id =:User_id按日期时间DESC排序                         限制1

希望它有效:)

答案 4 :(得分:0)

通过使用限制,您可以获得所需的数据

limit required_no.