-1

我使用以下答案提取了用户名列表:

如果我的查询中有太多的 OR 运算符,如何优化 mysql 查询?

现在我有另一个问题。我有一个仅由 2 列组成的朋友表,请求者和好友都形成了一个复合主键。

现在假设我有一个给定用户使用上述 SO 问题的 facebook 朋友数组。

我如何在我的网络应用程序中自动让他们成为朋友?

这意味着如果我有一个名为“usera”的用户有 5 个真正的朋友。我需要执行 10 个插入语句。

例如:friendA, usera 和 usera,friendA 以便将friendA 反映为usera 的朋友。

我知道插入选择是有效的。但不幸的是,这些朋友的用户名列表是通过使用 IN 子句的 PHP 值数组获得的,正如我上述问题中其他 SO 成员所建议的那样。

所以我该怎么做?

我是不是该

a) 遍历名称并为每个步骤执行 2 个插入语句?

b)使用插入选择?但如何做到这一点呢?

我的数据库是这样设计的:

1 个表名为 users 的用户名和 fb_uid,其中用户名是主键,fb_uid 可以为空。

一张名为friends的表,其中一列名为requestor,另一列名为buddy。两列形成一个复合键。

当您在朋友表中有以下数据时,我的网络应用程序中的 2 个人(usera,userb)之间建立了友谊:(usera,userb)和(userb,usera)。

谢谢你。

4

2 回答 2

1

您可以随时进行批量插入。

INSERT INTO friends (user_id, friend_user_id) VALUES (1, 2), (2, 1)
于 2009-08-14T13:47:40.370 回答
0

我会选择 INSERT SELECT,你可以在这里找到详细的语法

于 2009-08-14T13:49:00.977 回答