微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用PHP脚本在MySQL中删除重复的行

如何解决使用PHP脚本在MySQL中删除重复的行

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

table rows

我尝试了以下操作但未成功:

$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循环(显然,该操作不会在这里执行您想要的操作):

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的行。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。