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_id
和to_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 查询从好友表中获取好友列表的主要内容,如果未能解决你的问题,请参考以下文章