2011-12-01 74 views
2

目前,我更新我的不同的表像這樣mysql的更新加入?

$q = $dbc -> prepare("UPDATE boardposts SET lastPosterID = ?, postOrder = NOW() WHERE postID = ?"); 
$q -> execute(array($user['id'], $_GET['view'])); 
$q = $dbc -> prepare("UPDATE accounts SET msgBoardPosts = msgBoardPosts+1 WHERE id = ?"); 
$q -> execute(array($user['id'])); 

是否有可能把這些在一個查詢還挺更新?

回答

0

是的,它是可能的,喜歡的東西:

UPDATE boardposts AS bs 
left join accounts AS a on bs.AccountId = bs.lastPosterId 
set bs.lastPosterId = ?, bs.postOrder = NOW(), 
    a.msgBoardPosts = msBoardPosts + 1 
WHERE bs.postId = ?, 
     a.id = ? 

我到現在也沒你的兩個表的結構,但是這是基本的思路看UPdate語法:

UPDATE [ LOW_PRIORITY] [忽略] table_reference SET .... 的table_references子句列出涉及的連接表。其語法描述爲JOIN Syntax

+0

謝謝,我會實現這個我一直在使用2個查詢,有時甚至3,貌似我得到了一些編碼呢! – cgwebprojects