一次更新两个表

时间:2011-05-25 17:53:34

标签: php mysql

我正在使用5.1.41-3ubuntu12.10作为我的MySQL版本。

UPDATE profiledata SET aboutyou = '$aboutyou', quotes = '$quotes' 
WHERE uid = '$sess_uid'

UPDATE profileprivacy 
SET aboutyouPrivacy = '$aboutyouPrivacy', quotesPrivacy = '$quotesPrivacy' 
WHERE uid='$sess_uid'

$ sess_uid对两者都是一样的。我想知道我是否可以将两个MySQL查询合并到一个mysql_query中。

我原以为它会像SET profiledata.aboutyou = 'Just a developer.'那样,不太确定。

2 个答案:

答案 0 :(得分:7)

你可以使用这样的连接:

$query = "UPDATE profiledata t1 
JOIN profileprivacy t2 ON (t1.uid = t2.uid) 
SET t1.aboutyou = '$aboutyou', 
    t1.quotes = '$quotes', 
    t2.aboutyouPrivacy = '$aboutyouPrivacy', 
    t2.quotesPrivacy = '$quotesPrivacy' 
WHERE t1.uid = '$sess_uid'";

答案 1 :(得分:1)

MySQL确实有多表更新支持:http://dev.mysql.com/doc/refman/5.0/en/update.html

UPDATE profiledata, profileprivacy 
SET aboutYou = ..., aboutyouPrivacy = ... 
WHERE (profiledata.uid = $sess_uid) OR (aboutyouPrivacy.uid = $sess_uid)

或类似的东西应该可以解决问题。