【问题标题】:Delete duplicate rows in MySQL using PHP script使用 PHP 脚本删除 MySQL 中的重复行
【发布时间】:2021-01-05 12:26:21
【问题描述】:

我需要一个从 MySQL 数据库表中删除重复行的 PHP 函数。例如,我有一个这样的表:

我尝试了以下方法但没有成功:

$find = mysql_query("SELECT * FROM users");
while ($row = mysql_fetch_assoc($find))
{
    $find_1 = mysql_query("SELECT * FROM users ");
    if (mysql_num_rows($find_1) > 0) {
        mysql_query("DELETE FROM users WHERE ID =$row[num]");
    }

我需要删除这些重复的行并仅使用 PHP(而不是我的 SQL 数据库)保留其中一个。有没有办法做到这一点?

【问题讨论】:

标签: php mysql sql duplicates sql-delete


【解决方案1】:

您可以通过单个查询来完成此操作,而无需 php 循环(显然,这不会在此处执行您想要的操作):

delete t
from mytable t
inner join (select user, min(num) num from mytable group by user) t1
    on t.user = t1.user and t.num > t1.num

这将删除具有相同user 的行,同时保留具有最小num 的行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-19
    • 2019-09-23
    • 1970-01-01
    相关资源
    最近更新 更多