获取mysql列名以及复制mysql的表记录

因为调试程序分页效果需要快速的添加一些记录,复制当然是最方便的方法:
insert into table1(f1,f2) select f1,f2 from table1 where id < 10;


但是几个字段的话还好说,要是有几十个字段,那不就有点..... :cry:

也许有更巧妙的复制记录的方法,但如果参照以上方法的话,下一步工作就是快速方便的获取到“列名”。 当然通过JAVA或PHP程序进行处理的话也是可以的,但是sql语句本身也有一些有趣的办法可以得到。
假定我这里的表名是“hugetable”,首先熟悉的获取表信息的方法有:
SHOW COLUMNS FROM hugetable;
DESCRIBE hugetable;

但是他们得到的结果是类似以下:
+------------+----------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+----------+------+-----+---------+----------------+
| Id | int(11) | NO | PRI | NULL | auto_increment |
| Name | char(35) | NO | | | |
| Country | char(3) | NO | UNI | | |

而我暂时想要的仅仅是column name而已。

于是找到下面的一个语句,可以实现这个要求:
select column_name from information_schema.columns where table_name='hugetable';  


当然将这些结果集的field values拷贝出来后,还需要一些正则替换,
将 单引号 ’ 替换为 空白
将 回车符 \n 替换为 逗号,

现在得到的字串就满足需求了 :-)

抛块砖,希望遇见更好的方法 :-)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值