如何在从同一个表中获取值的表中插入值?

yws3nbqq  于 2021-08-09  发布在  Java
关注(0)|答案(1)|浏览(305)

如果我有一个名为shippings的带有列的表 origin_state 以及 destination_state . 我想要一个名为 st_st 有价值的 origin_state _ destination_state . 例如,如果一行以sc作为起点,ga作为目的地。我应该去医院 st_st 我试过了

INSERT INTO shipments(ST_ST) 
SELECT CONCAT(`Origin_state` , '_' ,`Destination State`) AS ST_ST 
From shipments;

此查询开始在表的末尾插入值,而不是插入到相应的行中。请帮忙。

htrmnn0y

htrmnn0y1#

使用生成的列:

alter table shipments add column st_st varchar(255) generated always as
    concat(`Origin_state` , '_' ,`Destination State`) ;

也可以使用 update :

update shipments
    set st_st = concat(`Origin_state` , '_' ,`Destination State`);

但是,生成的列确保 st_st 始终是一致的,即使对于新行和现有行中的值更改也是如此。

相关问题