約10万行のMySqlテーブルがあります。1 ~ 35 の数字を含む id という 1 つのフィールドがあります。これらのすべてのレコードは、この ID の範囲に属します。つまり、これらのすべてのレコードの ID 列の値は 1 ~ 35 です。
ここで、各 ID の 1 つの行を持つ別のテーブルを作成したいと考えています。つまり、新しいテーブルには 35 行しかないはずです。
どのようにそれについて行くのですか?
約10万行のMySqlテーブルがあります。1 ~ 35 の数字を含む id という 1 つのフィールドがあります。これらのすべてのレコードは、この ID の範囲に属します。つまり、これらのすべてのレコードの ID 列の値は 1 ~ 35 です。
ここで、各 ID の 1 つの行を持つ別のテーブルを作成したいと考えています。つまり、新しいテーブルには 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;
次のように、あるテーブルから別の偶数差分データベース(スキーマ)にデータをコピーできます
INSERT INTO [DestDatabase].[DestTablName]
SELECT [ColumnName] FROM [SourceDatabase].[SourceTablName];
したがって、次の 2 つの方法を使用できます。
1:
INSERT INTO tbl_New
SELECT DISTINCT id from tbl_Original;
2:
INSERT INTO tbl_New
SELECT id from tbl_Original GROUP BY id;