我有一个包含facebook ID列表的用户表,如下所示。 'userID'是我给每个条目的唯一键
userID name facebookID
1 John Smith 5012991
2 Mark Jones 5912356
3 Bob Doe 814126819
我的问题是我有一个当前登录用户的朋友的Facebook ID列表。你可以想象这可以是100到1000之间的任何东西,我基本上需要搜索我的用户表中的每个用户朋友ID,以查找他们是否已经在其中(并因此显示他们的Facebook好友已经在我的网站上) )。
我能想到找到匹配的唯一方法是做一个foreach循环并为每个用户的facebook朋友ID运行一个查询,但这可能一次最多1000个或更多查询,这是相当多的。有没有办法让这个搜索更有效率,也许是通过使用我不知道的mySQL函数!
答案 0 :(得分:3)
您可以SELECT * FROM friends WHERE facebookID IN (5912356, 814126819);
查找给定列表中的所有朋友。您可以在此处阅读IN
功能:http://dev.mysql.com/doc/refman/5.5/en/comparison-operators.html#function_in,如果您需要查找尚未列入其中的朋友,则可以使用类似的NOT IN
功能。如果您尝试将数组转换为要在implode()
函数中使用的字符串,则PHP函数IN
可能很有用。
答案 1 :(得分:1)
您可以通过以下方式运行单个查询:
SELECT * FROM user WHERE facebookID IN (id1, id2, id3);
我希望能理解你的问题。
答案 2 :(得分:1)
或更好,使用现有的friends.getMutualFriends
功能,
这将允许您使用您的网站向用户显示相互之友并邀请其他人
玩得开心,希望有所帮助