2016-09-18 135 views
0

我可以一起選擇和更新嗎?而不是使用2個查詢,我可以只使用一個?mysql在這種情況下使用一個查詢進行選擇和更新?

SELECT data FROM log limit 1 

update log SET `data` = $now where `id` = 1 

有什麼想法?

+0

你想完成什麼?這種操作的結果是什麼? –

+0

@KamilG。我想只允許一個用戶閱讀這個日期,第一個打開頁面的人,第一個用戶應該更新日期。一個功能每5分鐘可用,同時不能爲2個用戶提供服務。這樣,在MyISAM引擎中一起選擇和更新我可以做我想做的,不是嗎? –

+1

你不能在一個查詢中執行'SELECT'和'UPDATE'。使用事務來防止其他人在查詢之間更改數據庫。 – Barmar

回答

1

鎖定表以防止其他用戶更新表。

LOCK TABLES data; 
SELECT data FROM log WHERE id = 1; 
// fetch the result 
UPDATE log SET data = NOW() WHERE id = 1; 
UNLOCK TABLES; 
相關問題