我的代码是

<?php
include('conn.php');
$insert=$membersdb->query("UPDATE members SET  Username=properties.Username FROM members JOIN uidlist on  members.Username=Properties.Username"); echo "Error : ".$membersdb->error."<br>";
if($insert){echo "Done !<br>";}else{echo "Not Done !<br>";

$insert2=$membersdb->query("UPDATE members SET Username=`uidlist.Username'"); echo "Error : ".$membersdb->error."<br>";
if($insert2){echo "Second Insert Done !<br>";}else{echo "Second Insert Also Not Done !<br>";}

$insert3=$membersdb->query("Update members Set Username =(Select uidlist.Username From uidlist) WHERE members.Name=uidlist.Name"); echo "Error : ".$membersdb->error."<br>";
if($insert3){echo "Third Insert Done !<br>";}else{echo "Third Insert  Also Not Done !<br>";}
}

我正在尝试三个不同的查询,将members表的用户名替换为uidlist表的用户名
错误如下:
错误:SQL语法中有错误;请查看手册
对应于MySQL服务器版本,以便使用正确的语法
来自成员的“near”加入uidlist on
members.Username=Properties.Username'第1行未完成!
错误:“字段列表”中的未知列“uidlist.Username”秒
插入也没有完成!
错误:“where子句”第三次插入时出现未知列“uidlist.Name”
也没做!

最佳答案

正如您所注意到的,第一条语句的思想是正确的,尽管语法不正确。在MySQL中,join子句在set子句之前:

UPDATE members m
JOIN   uidlist u on m.name = u.name
SET    m.Username = u.Username

10-06 06:22