MySql 查询从好友表中获取好友列表

Posted

技术标签:

【中文标题】MySql 查询从好友表中获取好友列表【英文标题】:MySql Query to get friend list from Friends table 【发布时间】:2012-04-06 18:53:20 【问题描述】:

我有一个名为 friends 的表,结构如下:

id, from_id, to_id, confirmed, ....

此表包含所有用户的所有朋友的列表。 from_id 和 to_id 包含用户的 id,其中 from_id 是实际发送好友请求的用户。

现在,我需要选择一个特定用户的所有好友列表。

最好使用以下查询或联合查询:

"select (from_id + to_id)- $user_id as friend_id, ... from friends where from_id=$user_id or to_id=$user_id"

【问题讨论】:

【参考方案1】:

虽然我喜欢你的数学爱好者解决方案,但我认为它没有考虑溢出问题。例如:如果将两个非常大的数字相加会发生什么?

除此之外,您的解决方案还依赖于数字 user_id。使用联合可能需要更多时间(您应该测试以确保),但适用于任何数据类型。

【讨论】:

【参考方案2】:

我会使用union(确保您在from_idto_id 上有索引):

select from_id from friends where to_id = $user_id
union
select to_id from friends where from_id = $user_id

在我看来这样更清楚。

【讨论】:

我应该如何确保在 from_id 和 to_id 上有索引? 为它们中的每一个创建一个索引。看看 mysql 中的create index 语句。【参考方案3】:

假设您在 id 上有键,联合肯定会更好,然后执行算术运算。

【讨论】:

以上是关于MySql 查询从好友表中获取好友列表的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Facebook iOS sdk 获取好友列表

从mysql获取随机好友

如何获取对方qq好友列表 用啥软件

如何使用 Web 服务从 iPhone 版 Facebook 获取事件、生日、好友列表、事件?

怎么获取好友的qq列表,用啥软件

ios qqq好友列表滑动怎么实现