我有一个应用程序可以从他们的 fb 帐户中保存用户喜欢的内容,然后在一个用户访问另一个用户的个人资料时显示常见的喜欢。有两种方法可以做到这一点: 1. 由于我已经从数据库中获得了 user1 的喜欢,我可以将 ID 保存在一个字符串中,例如
$user1_likes="1,2,5,6,10,15,19";
然后使用此查询查找常见的喜欢:
SELECT name FROM user_like WHERE uid='user2' AND id IN ($user1)
或者,我可以做这个查询
SELECT name FROM user_like WHERE uid='user2' AND id IN (SELECT id FROM user_like WHERE uid='user1')
第一种方法的问题是,如果 user1 有很多喜欢(比如 4000),查询可能会变得太大而 mysql 无法处理。方法 2 的问题是 mysql 应该再次选择它已经选择的内容。
你有什么建议来处理这种情况?