检查用户是否已经在MySQL中发布了特定的帖子&;PHP


Checking whether a user has posted on a particular post in MySQL & PHP

我有一个小小的社交网络应用程序,用户可以"喜欢"别人发布的帖子。

我可以很容易地记录点赞,但我想每个用户只插入一个。现在,同一个用户可以一遍又一遍地"点赞"同一个帖子。

如何使用MySQL实现这一点?如果可能的话,我宁愿在一份声明中这样做。

这是我当前的INSERT语句

INSERT INTO app_likes (user_id, post_id) VALUES ($user_id, $post_id)

因此,基本上,我需要根据post_id检查该用户是否已经在app_likes表中有一个条目。

有道理吗?

使用WHERE NOT EXISTS条件

INSERT INTO app_likes (user_id, post_id)
SELECT * FROM (SELECT $user_id, $post_id) AS tmp
WHERE NOT EXISTS (
     SELECT user_id, post_id FROM app_likes WHERE user_id = $user_id AND post_id = $post_id
) LIMIT 1;