Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Tách chuỗi phân cách dấu phẩy và chèn thành các dòng riêng biệt trong MySQL

Có thể dùng Prepared Statement để tách chuỗi và chèn nhiều dòng một lần.

Tạo bảng:

mysql> CREATE TABLE University (UserId INT, UniversityId INT);

Các bước xử lý:

mysql> SET @userId = '8,9,10';
mysql> SET @UniversityId = 100;
mysql> SET @myValues = REPLACE(@userId, ',', CONCAT(', ', @UniversityId, '),('));
mysql> SET @myValues = CONCAT('(', @myValues, ', ', @UniversityId, ')');
mysql> SET @insertQuery1 = CONCAT('INSERT INTO University VALUES', @myValues);

Thực thi prepared statement:

mysql> PREPARE st FROM @insertQuery1;
mysql> EXECUTE st;
Query OK, 3 rows affected (0.18 sec)

Kết quả:

+--------+--------------+
| UserId | UniversityId |
+--------+--------------+
| 8      | 100          |
| 9      | 100          |
| 10     | 100          |
+--------+--------------+

Giải phóng statement:

mysql> DEALLOCATE PREPARE st;

Lưu ý: Cách này phù hợp cho chuỗi đơn giản. Với dữ liệu phức tạp, cân nhắc dùng script ngôn ngữ lập trình (Python, PHP...) hoặc hàm JSON_TABLE (MySQL 8.0+).