3つの列を持つSQLテーブルがありますが、どれもUNIQUEではありません(ただし、ペア名+ロールはです):
Name | Role | Votes
私がする必要があるのは、次のルールに従う sqllite クエリを作成することです。
- 指定された名前と役割を持つ行が既に存在する場合、投票は 1 ずつ増加します
- そうでない場合は、Votes = 1 で新しい行が作成されます。
INSERT OR REPLACEとこの素晴らしい投稿を調べましたが、それほど役に立たないようです。INSERT OR REPLACE が実行可能なオプションであるかどうかさえわかりません。
INSERT OR REPLACE INTO words (name,role,votes)
VALUES ('foo','bar', coalesce((
select votes from words where name = 'foo' and role='bar'),0)+1)
常に挿入し、交換しない