、、、、、の列id
を持つテーブルがあります。ユーザーが [いいね] ボタンをクリックすると、対応するとを含む行がテーブルに追加され、が に設定されます。行がすでに存在し、列がすでに である場合、何も起こりません。user_id
post_id
like
views
user_id
post_id
like
1
like
1
ユーザーが特定のページにアクセスすると、テーブルに行が追加され、対応するおよびuser_id
がに設定されます。ただし、行が既に存在する場合は、値がインクリメントされます。post_id
view
1
view
問題:を使用しようとしINSERT INTO mytable ... ON DUPLICATE KEY UPDATE like = 1
ましたが、テーブルの主キーはid
and ではなくuser_id
orpost_id
です。主キーを または のいずれかに設定するuser_id
と、同じandpost_id
を持つ行が存在する場合にのみ行が複製されるため、問題が発生します。user_id
post_id
この状況では、クエリをどのように作成する必要がありますか?
または、テーブルを 2 つのテーブルに分割することをお勧めしlikes
ますviews
。user_id
この場合、行と列の両方に基づいて行を一意にする必要がありpost_id
ます。
または、複数の SQL クエリを実行しますか?
アドバイスしてください、ありがとう!