读书人

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

发布时间: 2012-09-25 09:55:58 作者: rapoo

获取mysql列名以及复制mysql的表记录
因为调试程序分页效果需要快速的添加一些记录,复制当然是最方便的方法:

insert into table1(f1,f2) select f1,f2 from table1 where id < 10;


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

也许有更巧妙的复制记录的方法,但如果参照以上方法的话,下一步工作就是快速方便的获取到“列名”。 当然通过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 替换为 逗号,

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

抛块砖,希望遇见更好的方法 :-)

读书人网 >Mysql

热点推荐