0

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

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

怎么办?

4

3 回答 3

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
于 2012-05-09T07:21:27.883 回答
0

您有一个包含 100.000 行的表,并且您想要一个包含 35 行的新表。您希望其余列的值是多少?

如果答案是:没关系,这有效:

CREATE TABLE newTable
SELECT * FROM yourTable
GROUP BY ID;

如果你只想要ID,

CREATE TABLE newTable
SELECT DISTINCT ID FROM yourTable;
于 2012-05-09T07:22:53.417 回答
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;
于 2012-05-09T07:49:08.707 回答