0

我正在开发一个 iOS 社交网络应用程序。我目前正在构建“寻找朋友”部分。

我有一个“用户”表,它是这样的:

-user_id  -user_name  ... -twitter_id   -facebook_id   -instagram_id
948913    yagiz           2134421       2132412        4314124312

例如,当我尝试寻找朋友时,应用程序会在后台执行此操作:

  • 从选定的社交网络应用程序(Twitter/Facebook/Instagram)获取当前用户的全部关注列表。响应是一个简单的数组,由用户 ID 组成。

  • 对于每个 Twitter/Facebook/Instagram id 运行一个查询,检查它是否在应用程序数据库中。

目前这运作良好。但我有点认为这不是有效的。因为如果用户在 Twitter/Facebook/Instagram 上关注 5000 人,则应用运行 5K 查询。

所以我问哪个是将非 MySQL 列表/数组/数据与 MySQL 行进行比较的最佳方法?

4

1 回答 1

0

您可以使用执行单个查询

WHERE ... IN('1', '2') 

如果你有一个 ids 数组,你可以这样做:

$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 . ")";

这将仅返回您数据库中的 twitter 用户。

于 2013-04-15T01:05:00.097 回答