我有一个大约有 100k 行的 MySql 表。有一个字段说 id 包含 1-35 的数字。所有这些记录都在这个 id 范围内,即所有这些记录的 id 列的值都在 1-35 之间。
现在我想创建另一个表,每个表都有一行。即新表应该只有 35 行。
怎么办?
我有一个大约有 100k 行的 MySql 表。有一个字段说 id 包含 1-35 的数字。所有这些记录都在这个 id 范围内,即所有这些记录的 id 列的值都在 1-35 之间。
现在我想创建另一个表,每个表都有一行。即新表应该只有 35 行。
怎么办?
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
您有一个包含 100.000 行的表,并且您想要一个包含 35 行的新表。您希望其余列的值是多少?
如果答案是:没关系,这有效:
CREATE TABLE newTable
SELECT * FROM yourTable
GROUP BY ID;
如果你只想要ID,
CREATE TABLE newTable
SELECT DISTINCT ID FROM yourTable;
您可以将数据从一个表复制到另一个偶数差异数据库(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;