0

私が達成しようとしているのはこれです-ハイスコアが現在のものよりも優れている場合にのみ、特定の値でテーブルを更新します。

userIdhighScoresomethingdateLastPlayedを含むテーブルを取得しました

userIdが 1 のユーザーは自分のスコアを上回っています。その場合、行のすべてのフィールドを更新したいと考えています。彼が自分のハイスコアを破っていない場合は、 dateLastPlayedフィールドを更新したいだけです。

これは私がこれまでのものを挿入する方法です

INSERT INTO table VALUES ('$userId', '$highScore', '$something', '$dateLastPlayed') ON DUPLICATE KEY UPDATE highScore='$highScore', something='$something', dateLastPlayed='$dateLastPlayed'

userId には一意のキーがあることに注意してください。

これは正常に機能しますが、毎回highScoresomething、およびdateLastPlayedフィールドを更新します。変数 $highScore がデータベースに現在設定されている値よりも大きい場合にのみ、フィールドhighScore何かを更新したいと考えています。

MySQL のドキュメントを読みましたが、よくわかりません。どうすればこれを達成できますか? 複数のクエリを使用してデータをフェッチし、そのデータを使用してさらにクエリを作成することもできますが、それは単に進むべき道ではなく、皆さんが素晴らしい方法を思いつくのに文字通り数秒かかると思います。問題に取り組みます。

どうもありがとう!

4

2 に答える 2