mysql新加一列,复制为两列合并值。这个怎么写
sql-MySQL合并两列并添加到新列中
我的MySQL表具有以下结构:
+----------------+----------------+----------+
| zipcode | city | state |
+----------------+----------------+----------+
| 10954 | Nanuet | NY |
+----------------+----------------+----------+
我想将以上三列合并为一列,如下所示:
+---------------------+
| combined |
+---------------------+
| 10954 - Nanuet, NY |
+---------------------+
我想将此“组合”列添加到表的末尾而不破坏原始的3个字段。
stewart715 asked 2020-06-24T05:20:34Z
4个解决方案
126 votes
创建列:
ALTER TABLE yourtable ADD COLUMN combined VARCHAR(50);
更新当前值:
UPDATE yourtable SET combined = CONCAT(zipcode, ' - ', city, ', ', state);
自动更新所有未来值:
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);