2011-08-30 120 views
-2

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

例如:

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

任何人都可以帮助我吗?

+7

标记为急迫不会帮助你,而是把关怀和思想纳入你的问题。现在,你到目前为止做了什么? –

回答

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和名称存储为阵列并启动更新。

+0

不客气,但如果你可以尝试标记我的答案被接受;) – ganzux

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; 

然后加入,以防止其再次发生的唯一索引。

+0

如果它是10000'michael'那里呢? :)'for($ i = 0; $ i <9999; $ i ++)...'? – J0HN