【问题标题】:Select only one row from table with the highest datetime value从具有最高日期时间值的表中仅选择一行
【发布时间】:2014-12-08 10:29:50
【问题描述】:

我有一张类似这样的表格:

images
    image_id       int
    user_id        int
    datetime       datetime

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

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

我怎样才能做到这一点?

这是一个开始查询:

SELECT *
FROM image
WHERE user_id = :user_id 

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

【问题讨论】:

  • 在末尾添加这一行order by datetime desc limit 1

标签: mysql sql


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    对于 SQL Server,您可以使用:

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

    【讨论】:

    • 顶部用于不在 mysql 中的 mssql
    【解决方案3】:

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

    从图片中选择 *
    WHERE user_id = :user_id
    按日期时间 DESC 排序 限制 1

    limit 将与 MySQL 一起使用

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

    【讨论】:

      【解决方案4】:

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

      希望它有效:)

      【讨论】:

        【解决方案5】:

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

        limit required_no.
        

        【讨论】:

          猜你喜欢
          • 2019-01-23
          • 2018-02-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-10-26
          • 2023-03-08
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多