MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

文字列を分割し、それを個別の値として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)

  1. 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>

  2. 別のテーブルの値を使用した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,&