我有一个大约有10万行的MySql表。有一个字段说id包含1-35的数字。所有这些记录都属于这个id范围,即所有这些记录的id值都在1-35之间。
现在我想创建另一个表,每个id都有一行。即新表应该只有35行。
如何去做?
答案 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;