php - 如何删除 SQL 结果中最旧的条目?

标签 php mysql pdo

我只想获取所有项目的最新报告,但只获取每个 item_id最新报告。 这是我目前的解决方案:

SELECT distinct * FROM t.reports ORDER BY created DESC LIMIT 100

我的表由以下列组成:

id | user | item_id |  created
'2', '1',   '2643',  '2017-06-13 16:28:34'
'3', '1',   '19333', '2017-06-13 19:26:56'
'4', '1',   '19333', '2017-06-13 19:29:24'
'5', '1',   '1319',  '2017-06-13 19:29:56'
'6', '1',   '1319',  '2017-06-13 19:30:16'
'7', '1',   '1319',  '2017-06-13 19:30:17'
'8', '1',   '1319',  '2017-06-13 19:30:18'
'9', '1',   '1319',  '2017-06-13 19:30:25'
'10','1',   '1319',  '2017-06-13 19:31:51'

我不想要重复的 item_ids 并且只想要该项目的最新条目。 但我也想要所有报告,但没有重复的项目报告!

例子: 我希望当我执行查询时,我只返回第 2、4 和 10 行。

最佳答案

试试这个:

select a.id,a.user,a.item_id,a.created
from reports as a
where a.created=(select max(created) 
                from reports as b
                where a.item_id=b.item_id)

关于php - 如何删除 SQL 结果中最旧的条目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44543764/

相关文章:

php - 如何确保用户不能在 PHP 中使用同一帐户登录两次?

php - 二维数组的使用

mysql - 选择 MySQL 中除一行以外的所有行

php - 数组的额外 2 个随机部分

mysql - SQL 通过 table1 中的另一个查询从 table1 中扣除查询

php - 当其他无缓冲查询处于事件状态时无法执行查询

php - 错误: could not find driver - Using PDO with MS Access database

php - 使用 PHP PDO 插入多个数组

php - 你能用 PHP 提取数据库 "type"信息吗?

php - Shell 脚本根据日期列出所有文件并将其发送到 HTML 文件,每行作为链接