MySQLでselectを使用してネストされた挿入を実装できますか?
はい、次の構文に示すように、MySQLでselectを使用してネストされた挿入を実装できます-
insert into yourTableName2(yourColumnName1,yourColumnName2,.....N) select yourColumnName1,yourColumnName2,....N from yourTableName1 where yourCondition;
最初に例を見て、テーブルを作成しましょう-
mysql> create table DemoTable1 ( Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, Name varchar(40) ); Query OK, 0 rows affected (0.88 sec)
挿入コマンド-
を使用して、テーブルにいくつかのレコードを挿入しますmysql> insert into DemoTable1(Name) values('Chris'); Query OK, 1 row affected (0.14 sec) mysql> insert into DemoTable1(Name) values('David'); Query OK, 1 row affected (0.11 sec) mysql> insert into DemoTable1(Name) values('Bob'); Query OK, 1 row affected (0.12 sec)
selectステートメントを使用してテーブルのすべてのレコードを表示する-
mysql> select *from DemoTable1;
これにより、次の出力が生成されます-
+----+-------+ | Id | Name | +----+-------+ | 1 | Chris | | 2 | David | | 3 | Bob | +----+-------+ 3 rows in set (0.00 sec)
以下は、2番目のテーブルを作成するためのクエリです-
mysql> create table DemoTable1 ( ClientId int, ClientFirstName varchar(20) ); Query OK, 0 rows affected (0.60 sec)
以下は、select-
を使用してネストされた挿入を実装するためのクエリです。mysql> insert into DemoTable2(ClientId,ClientFirstName) select Id,Name from DemoTable1 where Id !=2; Query OK, 2 rows affected (0.17 sec) Records : 2 Duplicates: 0 Warnings : 0
selectステートメントを使用してテーブルのすべてのレコードを表示する-
mysql> select *from DemoTable2;
これにより、次の出力が生成されます-
+----------+-----------------+ | ClientId | ClientFirstName | +----------+-----------------+ | 1 | Chris | | 3 | Bob | +----------+-----------------+ 2 rows in set (0.00 sec)
-
MySQLでINSERTINTOSELECTとUNIONを使用して複数の挿入を実行します
複数の挿入を実行するための構文は次のとおりです- insert into yourTableName(yourColumnName1,yourColumnName2,yourColumnName3,..N) select yourValue1 as yourColumnName1,yourValue2 as yourColumnName2,yourValue3 as yourColumnName3,......N union select yourValue1 as yourColumnName1,yourValue
-
MySQLテーブルで先行ゼロの値を選択して挿入します
このために、LPAD()とともにINSERTINTOSELECTステートメントを使用できます。まずテーブルを作成しましょう- mysql> create table DemoTable1967 ( Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, UserId varchar(20) ); Query OK, 0 rows affected (0.00 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql>