Computer >> Máy Tính >  >> Lập trình >> MySQL

Tách một chuỗi và chèn nó dưới dạng các giá trị riêng lẻ vào một bảng MySQL?

Bạn có thể đạt được điều này với sự trợ giúp của câu lệnh chuẩn bị sẵn trong MySQL. Đầu tiên bạn cần tạo một bảng. Truy vấn để tạo bảng như sau

mysql> create table University
   - > (
   - > UserId int,
   - > UniversityId int
   - > );
Query OK, 0 rows affected (0.64 sec)

Đầu tiên, chúng ta hãy đặt giá trị trong các cột được đề cập ở trên. Ở đây, chúng tôi đã đặt một chuỗi có giá trị được phân tách bằng dấu phẩy cho cột UserId. Chúng tôi sẽ tách phần này và chèn vào bảng

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)

Sau khi thực hiện tất cả các bước, bạn cần thực hiện @ insertQuery1 đã đề cập ở trên.

Truy vấn như sau

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

Bây giờ, hãy hiển thị tất cả các bản ghi từ bảng bằng câu lệnh select

mysql> select *from University;

Sau đây là kết quả hiển thị rằng chúng tôi đã tách thành công chuỗi (8, 9, 10) và chèn chúng dưới dạng các giá trị riêng lẻ

+--------+--------------+
| UserId | UniversityId |
+--------+--------------+
|      8 |          100 |
|      9 |          100 |
|     10 |          100 |
+--------+--------------+
3 rows in set (0.00 sec)

Bây giờ, hãy phân bổ lại câu lệnh đã chuẩn bị.

Truy vấn như sau

mysql> DEALLOCATE PREPARE st;
Query OK, 0 rows affected (0.00 sec)