首先感谢关注此帖的朋友我问题是这样:
我的一个表(dede_archives)里有2个字段writer和memberID 分别对应着另一个表 (dede_member)里面的两个字段userid和ID分别都有上万的记录,但是并没有分别对应.想实现这样过程:
通过表dede_archives里面的writer字段查询dede_member里面userid字段对应的ID字段,将相应dede_archives表里的memberID字段批量更新成对应的值:) 
通过SQL语句可以执行批量更新吗?:)恳请指教
QQ上朋友给我写了一个PHP程序,但是我执行后出现Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in D:\PHP\APMServ5.2.0\APMServ5.2.0\www\htdocs\ok.php on line 4
查询失败
出错的语句是:$result=mysql_query($query,$myconn) or die("查询失败");完整的代码是:<?php
include("include/config_base.php");
$query = "select * from dede_archives";
$result=mysql_query($query,$myconn) or die("查询失败");while($row = mysql_fetch_array($result))
{
$tempId=$row["writer"];$query1="select * from dede_member where userid=$tempId";
$result1=mysql_query($query1,$myconn);
while($row1 = mysql_fetch_array($result1))
{
$tempName=$row1["ID"];
}
$query2="update dede_archives set memberID='$tempName' where writer=$tempId";
$result2=mysql_query($query2,$myconn) or die("修改失败");
}
?>

解决方案 »

  1.   

    可以.
    update dede_archives as dearc set memberID=
    (select ID from dede_member as demem where demem.userid=dearc.writer)
      

  2.   

    还出现一个问题,我有一个表phome_ecms_news里面有2个字段分别为id和filename想实现如下过程,应该比较简单,. 就是将每条数据filename的值批量对应id就可以了
      

  3.   

    filename的值 很快情况下是中文
    而id的值是数字我使用
    update phome_ecms_news set filename= id where filename可以批量替换数字但是在filename的值为空或者为中文的时候就无法使用了
      

  4.   

    看MYSQL多表更新,坛子上有大量例子。搜索以下。
      

  5.   

    感谢版主关注,目前查询更新已经可以使用.
    现在问题出在我使用 
    update phome_ecms_news set filename= id where filename可以批量替换数字 但是在filename的值为空或者为中文的时候就无法使用了
      

  6.   

    "数据量上百万的时候会不会减少效率?"抱歉LZ,我没做过数百万的数据,所以回答不了你.我也关注.一同学习."但是在filename的值为空或者为中文的时候就无法使用了"为null时 你的where filename肯定不满足.
    用 CASE expression..  改改看能解决么?"中文比较"  我也不会,等待高手一同学习吧.
      

  7.   

    中文比较,有时候可能要用到binary like