【问题标题】:Comparing Non MySQL List/Array/Data With MySQL rows?将非 MySQL 列表/数组/数据与 MySQL 行进行比较?
【发布时间】:2013-04-14 23:52:26
【问题描述】:

我正在开发一款 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 上关注 5K 人,应用运行 5K 查询。

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

【问题讨论】:

    标签: php mysql facebook-graph-api twitter instagram


    【解决方案1】:

    您可以使用

    执行单个查询
    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 用户。

    【讨论】:

    • 这正是我想要的!谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多