【问题标题】:Insert rows with value from another subquery插入具有来自另一个子查询的值的行
【发布时间】:2016-06-20 00:03:47
【问题描述】:

我有一个表格“示例”

 id | name | value
-------------------
 1  | 'ab' |   10
 2  | 'ab' |   30
 3  | 'ef' |   20
 1  | 'gh' |   40
 3  | 'kl' |   40
 1  | 'mn' |   40
 2  | 'mn' |   40

我想为每个 id1 添加一次这样的新行:

INSERT INTO example (id, name, value) VALUES (<every id>, 'ij', 50)

因此,在该语句之后,表格应如下所示:

 id | name | value
-------------------
 1  | 'ab' |   10
 2  | 'ab' |   30
 3  | 'ef' |   20
 1  | 'gh' |   40
 3  | 'kl' |   40
 1  | 'mn' |   40
 2  | 'mn' |   40
 1  | 'ij' |   50
 2  | 'ij' |   50
 3  | 'ij' |   50

我知道我可以通过

SELECT DISTINCT id FROM example;

但我不知道如何将两个语句合并为一个。 那么:我该怎么做呢?

【问题讨论】:

    标签: mysql subquery sql-insert


    【解决方案1】:

    您可以使用 insert 作为 select 和 distinct 来执行此操作,如下所示:

    INSERT INTO example
    (SELECT distinct ID,'ij',50 FROM example)
    

    这是如果这 3 列是唯一的列并且按此顺序,如果不是,则需要在选择之前指定 (id, name, value)。

    选择将在您的情况下返回:

     1  | 'ij' |   50
     2  | 'ij' |   50
     3  | 'ij' |   50
    

    然后将其插入

    【讨论】:

    • 像魅力一样工作。谢谢!
    猜你喜欢
    • 2011-02-15
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    • 1970-01-01
    • 2021-03-14
    • 1970-01-01
    • 1970-01-01
    • 2015-04-18
    相关资源
    最近更新 更多