基于字段创建表

时间:2012-05-09 07:17:25

标签: mysql create-table

我有一个大约有10万行的MySql表。有一个字段说id包含1-35的数字。所有这些记录都属于这个id范围,即所有这些记录的id值都在1-35之间。

现在我想创建另一个表,每个id都有一行。即新表应该只有35行。

如何去做?

3 个答案:

答案 0 :(得分:2)

create table new_table (id int);
insert into new_table
    select distinct id from big_table;

编辑:

您可以输出new_table创建脚本并更改名称来创建big_table

SHOW CREATE TABLE big_table;
/* modify the name of the output and execute */
insert into new_table
    select * from big_table group by id

答案 1 :(得分:0)

你有一个包含100.000行的表,你想要一个包含35行的新表。您想要剩余列的值是什么值?

如果答案是:无所谓,这有效:

CREATE TABLE newTable
SELECT * FROM yourTable
GROUP BY ID;

如果您只想要ID,

CREATE TABLE newTable
SELECT DISTINCT ID FROM yourTable;

答案 2 :(得分:0)

您可以将数据从一个表复制到另一个甚至是差异数据库(Schema),如下所示

INSERT INTO [DestDatabase].[DestTablName]
SELECT [ColumnName] FROM [SourceDatabase].[SourceTablName];

所以,你可以用两种方式:

1:

INSERT INTO tbl_New
SELECT DISTINCT id from tbl_Original;

2:

INSERT INTO tbl_New
SELECT id from tbl_Original GROUP BY id;