【问题标题】:Insert rows into MySQL table while changing one value在更改一个值的同时将行插入 MySQL 表
【发布时间】:2010-03-19 06:30:45
【问题描述】:

我有一个 MySQL 表,它定义了特定客户类型的值。

|客户类型 |关键字段 1 |关键字段 2 |价值 |

每个客户类型都有 10 个与之关联的值(基于其他两个关键字段)。

我正在创建一个与另一个客户类型 (TypeA) 完全相同的新客户类型 (TypeB)。我想插入“TypeB”作为 CustomerType,然后只需从 TypeA 的行中复制其他三个字段的值。

是否有 SQL 插入语句来实现这一点?

类似:

insert into customers(customer_type, key1, key2, value)  values
"TypeB" union 
    select key1, key2, value
    from customers
    where customer_type = "TypeA"

谢谢- 乔纳森

【问题讨论】:

    标签: mysql insert


    【解决方案1】:

    您可以从表格中选择任何常数值:

    insert into customers(customer_type, key1, key2, value)
        select "TypeB", key1, key2, value
        from customers
        where customer_type = "TypeA"
    

    【讨论】:

      【解决方案2】:

      来自 MySQL reference

      INSERT INTO tbl_temp2 (fld_id)
      SELECT tbl_temp1.fld_order_id
      FROM tbl_temp1 WHERE tbl_temp1.fld_order_id > 100;
      

      除了去掉“TypeB”联合行之外,基本上就是你所拥有的。

      【讨论】:

        猜你喜欢
        • 2014-07-06
        • 1970-01-01
        • 2012-05-01
        • 1970-01-01
        • 1970-01-01
        • 2013-08-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多