使用PHP更新重复的MySQL记录

时间:2011-08-30 11:50:49

标签: php mysql duplicates

我需要使用PHP更新数据库中的重复记录。

例如:

我在数据库中有三个相同的记录micheal。我需要将两个micheal记录更新为micheal 1micheal 2,但保留一个micheal

2 个答案:

答案 0 :(得分:0)

$query = "SELECT * FROM table ORDER BY name";

$result = mysql_query($query, $db) or die('MySQL Error: ' . mysql_error()); // if mysql_query fails, prints the error reported by the mysql server and stops execution

$lastName = "";
$i = 1;
while($row = mysql_fetch_assoc($result)) {

    if ( $lastName==$row['name'] ){
        $q = "UPDATE table set name ='".$row['name']." ".$i."' WHERE id = ".$row['id'];
        mysql_query($q, $dbh) or die ("problema con query");
        $i++;
    }

    else
        $i = 1;

    $lastName = $row['name'];
}

如果您遇到并发修改问题,请尝试将ID和名称存储为数组并启动更新。

答案 1 :(得分:0)

...试

UPDATE yourdata
SET name='michael 1'
WHERE name='michael'
LIMIT 0,1;

UPDATE yourdata
SET name='michael 2'
WHERE name='michael'
LIMIT 0,1;

然后添加一个唯一索引以防止它再次发生。