2016-09-18 6 views
0

一緒に選択して更新できますか? 2つのクエリを使用する代わりに、1つだけ使用できますか?この場合、1つのクエリを使用してmysqlを選択して更新しますか?

SELECT data FROM log limit 1 

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

+0

あなたは何を達成しようとしていますか?そのような操作の結果はどうなりますか? –

+0

@KamilG。一人のユーザーだけがこの日付を読むことを許可したいと思います。最初のユーザーはページを開き、この最初のユーザーは日付を更新する必要があります。機能は5分ごとに使用可能になり、同時に2人のユーザーには使用できません。この方法で、MyISAMエンジンで一緒に選択して更新したいのですが、私はできないことができますか? –

+1

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; 
関連する問題