0

これは、火の中に立っているときにユーザーにダメージを与えたいゲームアプリケーション用です。負の hp (ヘルス ポイント) を許可したくないのですが、データが範囲外であるため、このクエリによってサーバーがクラッシュしています。

UPDATE game_moblist set hp=GREATEST(0,(hp-100)) WHERE id=2923

エラー メッセージ: #1690 - BIGINT UNSIGNED 値が '( legends. game_moblist. hp- 100)'の範囲外です

私は、最大のものは0しか通過できないと思っていました。2 つのクエリが同時にダメージを与えると、そのうちの 1 つの効果が失われる可能性があるため、hp を設定するだけで少し心配でした。

4

1 に答える 1

0

列識別子をバックティックしてみてください。

UPDATE `game_moblist` set `hp`=GREATEST(0,(`hp`-100)) WHERE `id`=2923
于 2012-08-07T17:19:59.470 に答える