使用 PHP 更新重复的 MySQL 记录

Posted

技术标签:

【中文标题】使用 PHP 更新重复的 MySQL 记录【英文标题】:Update duplicate MySQL record using PHP 【发布时间】:2011-08-30 11:50:48 【问题描述】:

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

例如:

我在数据库中有三个相同的记录micheal。我需要将两个micheal 记录更新为micheal 1micheal 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;

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

【讨论】:

如果里面有 10000 michael 呢? :) 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 记录的主要内容,如果未能解决你的问题,请参考以下文章

PHP/MYSQL:更新数据不起作用请看一下[重复]

如何使用php更新mysql表中的特定表行[重复]

我需要使用 JDBC 语句更新 mySQL 中的记录 [重复]

PHP Mysql获取表上次更新时间和日期[重复]

使用php从mysql数据库表创建/更新xml文件[重复]

使用AJAX,MySQL和PHP添加,删除,更新[重复]