【发布时间】: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 数据库)保留其中一个。有没有办法做到这一点?
【问题讨论】:
-
i cant do this,为什么不呢?发生什么了?您对 SQL 注入持开放态度,不应再使用mysql_。此外,最好在修复此问题后对user进行约束,它必须是unique。 -
警告:
mysql_*扩展自 PHP 5.5.0 起已弃用,自 PHP 7.0.0 起已被删除。相反,应该使用mysqli 或PDO_MySQL 扩展名。在选择 MySQL API 时,另请参阅 MySQL API Overview 以获得更多帮助。 -
请看这里:mysqltutorial.org/mysql-delete-duplicate-rows 和这里:phoenixnap.com/kb/mysql-remove-duplicate-rows 即使没有 php,您也可以使用 sql 查询来做到这一点
标签: php mysql sql duplicates sql-delete