php - 删除除最后一行之外的重复行

标签 php mysql database

我在 MySql 上有这个表:

表1

ID    CODE     USER       NUMBER     ADJUSTMENT     ADJUST_DATE 
1     abc      Frank      10245      1              2015/04/20
2     def      Jonathan   25410      0              2015/04/21
3     ghi      Karen      55214      3              2015/05/05
4     abc      Frank      10245      2              2015/04/21
5     abc      Frank      10245      4              2015/04/22

我想删除重复的数据并按日期保留最后一个条目:

ID    CODE     USER       NUMBER     ADJUSTMENT     ADJUS_DATE 
2     def      Jonathan   25410      0              2015/04/21
3     ghi      Karen      55214      3              2015/05/05
5     abc      Frank      10245      4              2015/04/22

CODE、USER、NUMBER、ADJUSTMENT、ADJUS_DATE 为“唯一”

我需要创建一个包含结果的临时表,因为我需要所有记录。

最佳答案

生成按列中类似值分组的最大日期的子集,然后连接回基本集...

SELECT A.ID, A.Code, A.user, A.Number, A.Adjustment, A.Adjust_date
FROM  table1 A
INNER JOIN (SELECT Code, User, Number, max(adjust_date) mDate
            FROM table1 group by Code, User, Number) B
  on A.code = B.code 
 and A.user = B.User 
 and A.Number = B.Number 
 and A.Adjust_date = B.mdate

关于php - 删除除最后一行之外的重复行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29852152/

相关文章:

php - mysql_insert_id() 中的错误 [邮件标签]

php从按特定记录分组的数组中回显记录

sql-server - Azure 上的 SQL Server 数据库大小限制,该怎么办?

python - SqlAlchemy 中的动态表创建和 ORM 映射

PHP发送邮件附件

PHP Reddit 排名算法 - 计算排名

php - 如何通过 PHP 按三列(具有类似信息)排序?

c - 操作一个非常大的 SHA256 哈希文本数据库的最有效方法?

javascript - 使用 JavaScript 调整 DIV 大小以适合页面(打印)

mysql - 两个事务似乎互相阻塞,但没有一个在等待