我不太了解mysql。我对此有疑问。我有一个数据库,它是20 GB。我想组合4列,然后将组合列移动到新列。但问题是表中的重复数据。
例如我想结合;
Column1(Not Null),
Column2(Some of them null, some of them not null),
Column3(Not Null),
Column4(Some of them null, some of them not null).
我的新列,我想移动我的组合列,是完全空的。经过我的长期研究,最后我在dev.mysql.com上找到了这段代码
INSERT INTO my_table (new_content)
SELECT Column1
FROM my_table WHERE my_table > 0;
结果,它将Column1移动到new_content。但我的其他20个专栏也是重复的,就像空场一样。我怎样才能轻松搞定?
抱歉我的英语不好。提前致谢。
答案 0 :(得分:1)
如果您希望根据列的字符串连接得到结果列,则可以使用concat
INSERT INTO my_table (new_content)
SELECT concat(Column1 , Column2, Column3, Column4)
FROM my_table ;
答案 1 :(得分:0)
在现有表中创建列:
ALTER TABLE my_table ADD COLUMN new_content VARCHAR(55);
更新表并将所有列连接到新创建的列:
UPDATE my_table SET new_content = CONCAT(Column1, Column2);
以后为所有插入值创建一个触发器:
CREATE TRIGGER insert_trigger
BEFORE INSERT ON my_table
FOR EACH ROW
SET new.new_content = CONCAT(Column1, Column2);
您还可以为UPDATE创建触发器:
CREATE TRIGGER
BEFORE UPDATE ON my_table
FOR EACH ROW
SET new.new_content = CONCAT(Column1, Column2);