いくつかの調査を行いましたが、私のニーズに合うものはないようです。Web サービスから取得したデータを含むデータベース テーブルがあります。
ユーザーは各レコードに対していくつかのタスクを実行し、「処理済み」としてフラグを立てます。したがって、「処理済み」という名前の追加の db フィールド (WS から取得したデータに基づくものではない) があり、デフォルトでは 0 に設定され、ユーザーが作業を完了すると 1 に設定されます。
毎日私はWSをチェックし、ステータスコードが変更された場合は行を更新し、処理を0に戻します(ユーザーが再び処理できるようにします)。
これが私のデータベースだとしましょう...
+------+------------+-------+------------+
| id | statuscode | foo | processed |
+------+------------+-------+------------+
| 123 | 66 | bar | 1 |
+------+------------+-------+------------+
- 同じキー (id) を持つ行がない場合は、新しいレコードを挿入します。
- 同じキーと「foo」が変更された行がある場合、「処理済み」フィールド以外の値を更新したいと思います。
- 同じキーとステータスコードが変更された行がある場合、任意の値を更新し、処理済みを 0 に設定したいと考えています。
いくつかの条件で ON DUPLICATE KEY UPDATE を使用すると、おそらくいくつかの CASE または IF 条件で機能する可能性があると思います...間違っていますか? どんな提案でも大歓迎です、事前に感謝します!