一次更新两个表

问题描述

| 我正在使用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。 我当时在想那大概是2英镑,不是很确定。     

解决方法

您可以使用如下联接:
$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\'\";
    ,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)
或类似的方法应该可以解决问题。