代码之家  ›  专栏  ›  技术社区  ›  Kim Stacks

我应该使用insert select还是只使用insert循环?

  •  -1
  • Kim Stacks  · 技术社区  · 15 年前

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

    how to optimize mysql query if i have too many OR operators in my query?

    现在我还有一个问题。我有一个朋友表,它只包含两列,请求者和好友都是复合主键。

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

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

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

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

    那我该怎么办?

    a) 循环遍历名称并为每个步骤执行2个insert语句?

    b) 使用插入选择?但具体怎么做呢?

    1个名为users的表,其中username是主键,fb\u uid可以为空。

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

    当您在朋友表中有以下数据时,我的web应用中的两个人(usera,userb)之间就会建立友谊:(usera,userb)和(userb,usera)。

    非常感谢。

    2 回复  |  直到 7 年前
        1
  •  1
  •   Harri Siirak    15 年前

    你可以随时批量插入。

    INSERT INTO friends (user_id, friend_user_id) VALUES (1, 2), (2, 1)
    
        2
  •  0
  •   Alix Axel    15 年前

    我会选择插入选择,你可以找到 detailed syntax here