我正在开发一款iOS社交网络应用。我目前正在构建“寻找朋友”部分。
我有一个“用户”表,如下所示:
-user_id -user_name ... -twitter_id -facebook_id -instagram_id
948913 yagiz 2134421 2132412 4314124312
现在,例如,当我尝试寻找朋友时,app会在后台执行此操作:
从选定的社交网络应用(Twitter / Facebook / Instagram)获取当前用户的全部关注列表。响应是一个简单的数组,由用户ID组成。
对于每个Twitter / Facebook / Instagram id运行一个查询,检查它是否在应用程序中 数据库中。
目前这种方法效果很好。但我认为这不高效。因为如果用户跟随5K人在Twitter / Facebook / Instagram上运行5K查询。
所以我想问哪个是将非MySQL列表/数组/数据与MySQL行进行比较的最佳方法?
答案 0 :(得分:0)
您可以使用
执行单个查询WHERE ... IN('1', '2')
如果你有一个id数组,你可以这样做:
$twitterIds = array(
1234,
1235,
1236
);
// $twitterIdString = '1234','1235','1236'
$twitterIdString = "'" . implode("','", $twitterIds) . "'";
// $queryStub = WHERE `-twitter_id` IN('1234','1235','1236')
$queryStub = "WHERE `-twitter_id` IN(" . $twitterIdString . ")";
这将仅返回数据库中的推特用户。