加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

php – 怎样选择MySQL中的最新行?

发布时间:2021-05-20 18:11:06 所属栏目:编程 来源:网络整理
导读:我想选择MySQL中有5个项目标特定表的最新行. 该表看起来像: id(自动增进) 到 来自 时刻戳 笔墨 数据相同于: |id | to | from | time stamp | text| 1 | user01 | user02 | 2011-09-01 | text1| 2 | user01 | user02 | 2011-09-02 | text2| 3 | user02 | us

我想选择MySQL中有5个项目标特定表的最新行.
该表看起来像:

> id(自动增进)
>到
>来自
>时刻戳
>笔墨

数据相同于:

|id | to     | from   | time stamp | text
| 1 | user01 | user02 | 2011-09-01 | text1
| 2 | user01 | user02 | 2011-09-02 | text2
| 3 | user02 | user01 | 2011-09-02 | text3
| 4 | user01 | user03 | 2011-09-03 | text4
| 5 | user01 | user04 | 2011-09-03 | text5
| 6 | user01 | user03 | 2011-09-04 | text6
| 7 | user03 | user01 | 2011-09-05 | text7

我想选择* WHERE to =’user01’和最新数据(也许是“id”或“时刻戳”). “from”可以许多,但每个沟通的“from”数据只能呈现一次.

无论怎样,所选数据将是:

| 2 | user01 | user02 | 2011-09-02 | text2
| 5 | user01 | user04 | 2011-09-03 | text5
| 6 | user01 | user03 | 2011-09-04 | text6

可以吗?
感激您花时刻阅读我的题目:) 最佳谜底

SELECT t.* 
FROM
      TableX AS t
  JOIN
      ( SELECT DISTINCT `from` AS f
        FROM TableX
        WHERE `to` = 'user01'
      ) AS df
    ON 
      t.id = ( SELECT tt.id
               FROM TableX AS tt
               WHERE tt.`to` = 'user01'
                 AND tt.`from` = df.f
               ORDER BY tt.`timestamp` DESC
               LIMIT 1
             )

最好停止行使to,from和timestamp等要害字定名表和字段.

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读