2013-01-10 34 views
2

我有以下查詢,它從「ac_pms」表中選擇個人消息(PM)。其他信息使用LEFT JOIN從其他表中獲取 - 「ac_accounts」。在「ac_pms」表中有「pm_read」列,它定義了PM是否被讀取。我需要在選擇PM時將該字段(pm_read)設置爲「1」。MySQL更新與選擇(標記「項目」爲已讀)

SELECT p.*, a.seller_id, a.winner_id 
FROM `ac_pms` AS p 
LEFT JOIN `ac_accounts` AS a ON p.pm_for_lot = a.id 
WHERE (p.pm_from=[user_id] OR p.pm_to=[user_id]) 
    AND p.pm_for_lot=[account_id] 
ORDER BY p.pm_date DESC; 

我無法想象在哪裏插入UPDATE表達SET pm_read = 1

回答

1

在同一SQL語句中,您不能使用SELECTUPDATE

但是,你可以用JOIN這樣UPDATE

UPDATE ac_pms AS p 
LEFT JOIN ac_accounts AS a ON p.pm_for_lot = a.id 
SET p.pm_read = 1 
WHERE (p.pm_from=[user_id] OR p.pm_to=[user_id]) 
    AND p.pm_for_lot = [account_id]; 

然後你可以再拍SELECT之後。