我的MySQL表 struct 如下:

+----------------+----------------+----------+
|    zipcode     |      city      |   state  |
+----------------+----------------+----------+
|     10954      |     Nanuet     |    NY    |
+----------------+----------------+----------+

我想将上述三列合并为一列,如下所示:

+---------------------+
|      combined       |
+---------------------+
| 10954 - Nanuet, NY  |
+---------------------+

我想把这个"组合"列添加到表的末尾,而不 destruct 原来的3个字段.

推荐答案

创建列:

ALTER TABLE yourtable ADD COLUMN combined VARCHAR(50);

更新当前值:

UPDATE yourtable SET combined = CONCAT(zipcode, ' - ', city, ', ', state);

自动更新所有future 值:

CREATE TRIGGER insert_trigger
BEFORE INSERT ON yourtable
FOR EACH ROW
SET new.combined = CONCAT(new.zipcode, ' - ', new.city, ', ', new.state);

CREATE TRIGGER update_trigger
BEFORE UPDATE ON yourtable
FOR EACH ROW
SET new.combined = CONCAT(new.zipcode, ' - ', new.city, ', ', new.state);

Mysql相关问答推荐

在联合查询中使用GROUP BY和ORDER BY

如果WHERE语句包含所有列,唯一键顺序是否重要?

为什么MySQL派生条件下推优化不起作用

使用 awk 重写 maxscale 过滤器

MySQL - 密码哈希没有预期的格式

数据导入和默认目标架构空列表. (Mysql 工作台 8)

高效的 SQL 查询,用于计算半小时时间序列中已发生的行的一部分

在 Codeigniter MySQL 中从另一个数据库获取数据

多个驱动器上的 MYSQL 数据

如何创建一个判断行是否存在的mysql查询-如果存在我想插入一条新记录,否则增加一个值

Golang Gorm没有从关联表中检索数据

如何在 SQL 中的一行中查找最小值和最大值?

结果差异(MySQL 5.7 vs MySQL 8.0)

终止空闲的mysql连接

Python MYSQL 更新语句

org.hibernate.InstantiationException:没有实体的默认构造函数::principal.Cliente

不正确的整数(2147483647)被插入到 MySQL 中?

mysql中float(2,2)和float()的区别

应该使用什么列类型将序列化数据存储在 mysql 数据库中?

int(11) 和 int(11) UNSIGNED 有什么区别?