1

基本的に私がやろうとしているのは、テーブルからターン ID を取得することですが、値が返された後、1 ずつインクリメントする必要があります。10 回インクリメントすると、0 にリセットされます。

だから私はこれに似た何かをしたいのですが、うまくいかないようです:

UPDATE `gan` SET `turn` = (SELECT `turn` FROM `gan` WHERE `gan_id`='$gan_id') + 1

また、値が 10 であるかどうかを確認して 0 にリセットする方法もわかりません。

したがって、php mysql クエリで、渡す gan_id に対して現在のターンが返され、値が返された後にインクリメントする必要があります。

2 つの個別のクエリを実行しようとしましたが、複数のユーザーが同じターンを取得するという問題が発生しています。

4

3 に答える 3

0

このクエリを試してください:

UPDATE `gan` SET `turn` =(SELECT MAX(`turn`) FROM `gan` WHERE `gan_id`='$gan_id')+ 1)

これにより、値が増加します。

値を確認して 0 にリセットするには、テーブルをロックしてからタスクを実行する必要があります

于 2013-04-20T09:06:11.263 に答える