MySQL 使用正则表达式将逗号分隔的字符串拆分为临时表
MySQL 缺乏专用的拆分字符串函数,需要其他方法。一种方法涉及通过迭代自定义函数来模拟拆分。
自定义拆分函数
以下函数在位置 pos 处拆分由 delim 分隔的字符串 x:
CREATE FUNCTION SPLIT_STR( x VARCHAR(255), delim VARCHAR(12), pos INT ) RETURNS VARCHAR(255) RETURN REPLACE(SUBSTRING(SUBSTRING_INDEX(x, delim, pos), LENGTH(SUBSTRING_INDEX(x, delim, pos -1)) + 1), delim, '');
循环并插入到临时文件中表
要迭代分割字符串并将其插入到临时表中,请使用 LOOP 语句:
DELIMITER $$ CREATE PROCEDURE ABC(fullstr) BEGIN DECLARE a INT Default 0 ; DECLARE str VARCHAR(255); simple_loop: LOOP SET a=a+1; SET str=SPLIT_STR(fullstr,"|",a); IF str='' THEN LEAVE simple_loop; END IF; #Do Inserts into temp table here with str going into the row insert into my_temp_table values (str); END LOOP simple_loop; END $$
注意: 使用如下脚本语言PHP 执行此类任务可能比仅依赖 MySQL 更高效。
以上是如何使用正则表达式将逗号分隔的字符串拆分为 MySQL 临时表?的详细内容。更多信息请关注PHP中文网其他相关文章!