文字列を分割し、それを個別の値としてMySQLテーブルに挿入しますか?
これは、MySQLのプリペアドステートメントを使用して実現できます。まず、テーブルを作成する必要があります。テーブルを作成するためのクエリは次のとおりです
mysql> create table University - > ( - > UserId int, - > UniversityId int - > ); Query OK, 0 rows affected (0.64 sec)
まず、上記の欄に値を設定しましょう。ここでは、UserId列にコンマ区切りの値を持つ文字列を設定しました。これを分割してテーブルに挿入します
mysql> SET @userId = '8,9,10'; Query OK, 0 rows affected (0.00 sec) mysql> SET @UniversityId = 100; Query OK, 0 rows affected (0.00 sec) mysql> SET @myValues = REPLACE(@userId, ',', CONCAT(', ', @UniversityId, '),(')); Query OK, 0 rows affected (0.00 sec) mysql> SET @myValues = CONCAT('(', @myValues, ', ', @UniversityId, ')'); Query OK, 0 rows affected (0.00 sec) mysql> SET @insertQuery1 = CONCAT('INSERT INTO University VALUES', @myValues); Query OK, 0 rows affected (0.00 sec)
すべての手順を実装したら、上記の@insertQuery1を実行する必要があります。
クエリは次のとおりです
mysql> PREPARE st FROM @insertQuery1; Query OK, 0 rows affected (0.00 sec) Statement prepared mysql> EXECUTE st; Query OK, 3 rows affected (0.18 sec) Records: 3 Duplicates: 0 Warnings: 0
ここで、selectステートメントを使用してテーブルのすべてのレコードを表示します
mysql> select *from University;
以下は、文字列(8、9、10)を正常に分割し、それらを個別の値として挿入したことを示す出力です
+--------+--------------+ | UserId | UniversityId | +--------+--------------+ | 8 | 100 | | 9 | 100 | | 10 | 100 | +--------+--------------+ 3 rows in set (0.00 sec)
次に、準備されたステートメントの割り当てを解除します。
クエリは次のとおりです
mysql> DEALLOCATE PREPARE st; Query OK, 0 rows affected (0.00 sec)
-
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>
-
別のテーブルの値を使用したINSERTINTOのMySQLクエリ?
これには、INSERTINTOSELECTステートメントを使用します。 テーブルを作成しましょう- 例 mysql> create table demo82 -> ( -> id int, -> name varchar(20) -> ); Query OK, 0 rows affected (2.06 挿入コマンド-を使用して、いくつかのレコードをテーブルに挿入します。 例 mysql> insert into demo82 values(100,&