检查用户是否在MySQL和PHP中发布了特定帖子

检查用户是否在MySQL和PHP中发布了特定帖子,php,mysql,Php,Mysql,我有一个小小的社交网络应用程序,用户可以“喜欢”别人发的帖子 我可以很容易地记录喜欢的内容,但我只想为每个用户插入一个。目前,同一个用户可以一次又一次地“喜欢”同一篇文章 我如何使用MySQL实现这一点?如果可能的话,我宁愿用一句话来表达 这是我当前的INSERT语句 INSERT INTO app_likes (user_id, post_id) VALUES ($user_id, $post_id) 因此,基本上,我需要检查该用户是否已经在app_likes表中根据该post_id设置了条

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

我可以很容易地记录喜欢的内容,但我只想为每个用户插入一个。目前,同一个用户可以一次又一次地“喜欢”同一篇文章

我如何使用MySQL实现这一点?如果可能的话,我宁愿用一句话来表达

这是我当前的INSERT语句

INSERT INTO app_likes (user_id, post_id) VALUES ($user_id, $post_id)
因此,基本上,我需要检查该用户是否已经在app_likes表中根据该post_id设置了条目

有意义吗?

使用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;
使用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;

谢谢,不过我有一个错误:您的SQL语法有一个错误;检查与您的MySQL服务器版本对应的手册,以了解在第行的“不存在的地方选择用户\u id,从应用程序中发布用户\u id,其中用户\u id=6和p”附近使用的正确语法1@SimonHume现在试试。我忘记了不能将值和WHERE NOT existhanks一起使用,尽管我得到了一个错误:您的SQL语法中有一个错误;检查与您的MySQL服务器版本对应的手册,以了解在第行的“不存在的地方选择用户\u id,从应用程序中发布用户\u id,其中用户\u id=6和p”附近使用的正确语法1@SimonHume现在试试。我忘了你们不能在不存在的地方使用值