將字串拆分並插入為 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)

更新於:30-Jul-2019

741 次瀏覽

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告