テーブルからデータを選択して同じパスで同じエントリを更新することが可能かどうかを知りたいのですが、php/mysql:テーブルから選択して1つのクエリで更新する
例
SELECT message_content, message_times_read FROM messages WHERE message_id = 1
その後
UPDATE messages SET message_times_read = message_times_read + 1 WHERE message_id = 1
は、私は1回の呼び出しでそれらを行うことができますか?もっと重要なことに、これが可能なら、私はすべきですか? (これは適切なプラクティスと考えられますが、これは異なるバージョン間で互換性がありますか?パフォーマンスは向上しますか?)
いくつかのデータベースはこの種のものをサポートしています。 [PostgreSQLの 'UPDATE RETURNING'](https://www.postgresql.org/docs/9.1/static/sql-update.html)。しかし、私が知っている限り、MySQLはそうではありません。 – Chris
あなたができることは、最初に選択クエリを実行し、その行をフェッチしたときに変数に入れ、その変数を使用して更新クエリを実行することができます。これは通常非常に速く起こり、ユーザーは気づかないかもしれません。 –
2つのクエリをトランザクションに入れて、別のプロセスがそれらの間に入ることができないようにします。 – Barmar