我对mysql并不擅长。但是想要改进它,以便能够在没有服务器端语言的情况下操作表。
我有一张桌子和两列。我需要从一列中选择数据并将其作为行插入到同一个表中。
据我所知,我需要选择此列数据,将其保存在临时表或变量中 然后遍历结果并插入它们。
但不知道该怎么做。
有人可以用一个简单的例子来帮助。
谢谢;)
更新 表:
id col1 col2
1 txt txt4
2 txt2 txt5
3 txt3 txt6
我需要合并col1和col2
最终结果:
id col1
1 txt
2 txt2
3 txt3
4 txt4
5 txt5
6 txt6
答案 0 :(得分:8)
这应该有效
insert into tablename
(col1_name)
select (col2_name) from tablename;
这将从第2列中选择所有数据,并将其作为新行插入第1列。然后,您可以通过执行以下操作删除第二列:
alter table tablename drop col2_name;
只需将tablename
替换为您的表名称,并使用列名称替换列名称。另外,请确保两个列数据类型彼此兼容。
答案 1 :(得分:3)
如果我读的正确,你想合并col1和col2 ??然后,试试这个
alter table table1 add column col3 varchar(255);
update table1 set col3 = concat(col1, " ", col2);
alter table table1 drop column col1;
alter table table1 drop column col2;
答案 2 :(得分:0)
您可以使用同一张桌中的INSERT ... SELECT。