【发布时间】:2009-08-14 13:40:27
【问题描述】:
我使用以下答案提取了用户名列表:
how to optimize mysql query if i have too many OR operators in my query?
现在我有另一个问题。我有一个仅由 2 列组成的朋友表,请求者和好友都形成了一个复合主键。
现在假设我有一个使用上述 SO 问题的给定用户的 Facebook 朋友数组。
如何在我的网络应用程序中自动让他们成为朋友?
这意味着如果我有一个名为“usera”的用户的 5 个实际朋友。我需要执行 10 个插入语句。
例如:friendA, usera 和 usera,friendA 以便将friendA 反映为usera 的朋友。
我知道插入选择是有效的。但不幸的是,这些朋友的用户名列表是通过使用 IN 子句的 PHP 值数组获得的,正如我上述问题中其他 SO 成员所建议的那样。
那我该怎么办?
我应该
a) 遍历名称并为每个步骤执行 2 个插入语句?
b) 使用插入选择?但是具体怎么做呢?
我的数据库是这样设计的:
1 个名为 users 的表,用户名和 fb_uid,其中用户名是主键,fb_uid 可以为空。
1 个名为 friends 的表,其中一个名为 requestor 的列和另一个名为 buddy 的列。两列形成一个复合键。
当朋友表中有以下数据时,我的网络应用程序中的 2 个人 (usera, userb) 之间建立了友谊:(usera, userb) 和 (userb, usera)。
谢谢。
【问题讨论】:
标签: php mysql bulkinsert