在更改一个值时将行插入MySQL表

时间:2010-03-18 22:23:11

标签: mysql insert

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

| CustomerType |关键领域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"

Thanks- 乔纳森

2 个答案:

答案 0 :(得分:6)

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

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

答案 1 :(得分:0)

来自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'联合'线以外,基本上就是你所拥有的。