我有mysql表
姓氏名字|完整
现在我想用“SELECT CONCAT”连接“surname”和“name”,并将输出放入“完整”列。
任何想法?
答案 0 :(得分:2)
如果你真的想这样做,@ scaisEdge的回答会告诉你如何做。但你真的不应该!这样做意味着引入冗余。这意味着您的数据库无法正确规范化。通常,您不会在一列或多列上存储由简单操作产生的数据。
请考虑使用VIEW。
CREATE VIEW extended_table AS SELECT surname, name, CONCAT(name,surname) AS complete
这没有任何存储开销。或者,您可以使用generated column。
ALTER TABLE users add column complete as CONCAT(name, surname);
这两个选项都允许您将表格保持为标准化形式,而不是将任何冗余数据保存到磁盘。
@jarlh在评论中提出了一个非常有效的观点,如何处理null
CREATE VIEW extended_table AS SELECT surname, name, CONCAT(COALESCE(name,''),COALESCE(surname,'')) AS complete
答案 1 :(得分:0)
您可以使用更新
update my_table
set complete = concat(surname, name)