繁体   English   中英

如何在UPDATE语句中使用SELECT中的值?

[英]How to use a value from SELECT in UPDATE statement?

以下是我要完成的工作。 我正在尝试使用SELECT语句检索整数值,然后将其传递给UPDATE语句,但我并没有成功。 以下是我到目前为止所做的事情,但是没有用。 请任何建议将不胜感激。 $empID是使用php从表单传递的。

$getemID ="SELECT  `addressID` FROM  `address` WHERE  `userID` =$empID";
$myemID = mysql_query($getemID) or die(mysql_error());
$addrID = $myemID["addressID"];

$sql4="UPDATE `address` 
SET `line1`='$line1', `line2`='$line2', `city`='$city', `zip`='$zip'
WHERE `addressID`=$addrID";
$res = mysql_query($sql4) or die(mysql_error());

尽管您不应该使用不推荐使用的 mysql_*函数,但以下内容仍然有效:

mysql_query调用的返回值不是数组,而是资源。 在类似mysql_fetch_array的调用中使用此资源来获取数据。 然后,您可以将该数据用于其他查询。

选择查询后,您必须使用mysql_fetch_array获取它们。 如下所示:

$getemID ="SELECT  `addressID` FROM  `address` WHERE  `userID` =$empID";
$myemID = mysql_query($getemID) or die(mysql_error());
$row = mysql_fetch_array($myemID);
$addrID = $row["addressID"];
$sql4="UPDATE `address` 
SET `line1`='$line1', `line2`='$line2', `city`='$city', `zip`='$zip'
WHERE `addressID`='$addrID' ";
$res = mysql_query($sql4) or die(mysql_error());

为什么不在下面的单个查询中这样做

UPDATE `address` 
SET `line1`='$line1', `line2`='$line2', `city`='$city', `zip`='$zip'
WHERE `addressID` IN (
SELECT  `addressID` FROM  `address` WHERE  `userID` =$empID
)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM