2016-09-18 134 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; 
相关问题