【问题标题】:MySql - Add new row for every userId in the tableMySql - 为表中的每个 userId 添加新行
【发布时间】:2017-11-21 16:25:22
【问题描述】:

下面是我正在尝试为其编写查询以便为每个用户添加新行的表。

我的问题是如何为每个用户添加一个新行?这意味着对于 userId 2 我添加 AccId 4 并且对于 7 和 8 类似。由于 sql 中没有 for 循环的概念,我是否使用 while?如果是这样,由于 ID 的增量不同,如何遍历 userId?

【问题讨论】:

  • Insert Into mytable (UserID, AccID) Select UserID, 4 From MyTable Group By UserID
  • 循环用于过程语言,而不是设置语言
  • 投反对票的请留下投反对票的理由。

标签: mysql sql tsql


【解决方案1】:

可能是这样的:

Insert Into mytable (UserID, AccID) 
Select UserID, max(accId)+1 
From MyTable 
Group By UserID

您可以每次重新运行它,您将创建下一个值。

【讨论】:

    【解决方案2】:

    在 MySql 服务器上未经测试:

    INSERT INTO MyTable ( ID, AccId )
    SELECT MyValues.ID, MyValues.Espr1
    FROM (SELECT MyTable.ID, Max([AccId]+1) AS Espr1
    FROM MyTable
    GROUP BY MyTable.ID)  AS MyValues;
    

    基本上,我们预取 Id 一个 AccId,将 Id 的值分组并获取 AccId 的最大值。 然后我们将这些行添加到主表中。重复查询,我们将添加值 5 (AccId) 等等,总是添加 1

    【讨论】:

      猜你喜欢
      • 2015-05-18
      • 2014-02-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-18
      • 1970-01-01
      相关资源
      最近更新 更多