使用 PHP 更新重复的 MySQL 记录
Posted
技术标签:
【中文标题】使用 PHP 更新重复的 MySQL 记录【英文标题】:Update duplicate MySQL record using PHP 【发布时间】:2011-08-30 11:50:48 【问题描述】:我需要使用 php 更新数据库中的重复记录。
例如:
我在数据库中有三个相同的记录micheal
。我需要将两个micheal
记录更新为micheal 1
和micheal 2
,但留下一个micheal
原样。
【问题讨论】:
标记为紧急并不会帮助您,而是在您的问题中小心谨慎。现在,到目前为止,您尝试过什么? 【参考方案1】:试试....
UPDATE yourdata
SET name='michael 1'
WHERE name='michael'
LIMIT 0,1;
UPDATE yourdata
SET name='michael 2'
WHERE name='michael'
LIMIT 0,1;
然后添加唯一索引以防止再次发生。
【讨论】:
如果里面有 10000michael
呢? :) for ($i=0;$i<9999;$i++) ...
?【参考方案2】:
$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 和名称存储为数组并启动更新。
【讨论】:
以上是关于使用 PHP 更新重复的 MySQL 记录的主要内容,如果未能解决你的问题,请参考以下文章