拆分字符串并将其作为单个值插入 MySQL 表中?
mysqlmysqli database
您可以借助 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)