mysql split 逗号分隔_MySQL拆分逗号分隔的字符串到临时表中

小编典典

MySQL没有拆分字符串函数,因此您必须解决。使用上面答案页中列出的方法之一分割数据后,您就可以对数据进行任何处理。

您可以遍历该自定义函数,并在返回空值时中断它,您必须播放并学习一些语法(或者至少是我愿意),但是mysql中FOR循环的语法是:

http://www.roseindia .net / sql / mysql-example /

for.shtml

您可以对其进行迭代,从而增加以下函数中的位置:

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, '');

//blog.fedecarg.com/2009/02/22/mysql-split-string-

function/)

如果找不到匹配项,则应返回“”,因此,如果找不到匹配项,则中断循环。这将允许您仅使用mysql解析拆分字符串并将插入查询运行到临时表中。但是,为什么不只使用php之类的脚本语言来完成这种工作呢?:(

循环语法代码:

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 $$

2020-05-17

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在MySQL逗号分隔字符串拆分临时表,可以使用以下步骤: 1. 创建一个临时表,用于存储拆分后的值: ```sql CREATE TEMPORARY TABLE temp_table (value VARCHAR(255)); ``` 2. 使用`SUBSTRING_INDEX`函数将逗号分隔字符串拆分成多个值,并插入到临时表: ```sql INSERT INTO temp_table SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(your_column, ',', n), ',', -1) AS value FROM your_table CROSS JOIN ( SELECT 1 + n + thousands.n + millions.n * 1000 AS n FROM ( SELECT 0 AS n UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9 ) AS thousands CROSS JOIN ( SELECT 0 AS n UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9 ) AS millions ) AS numbers WHERE n <= (LENGTH(your_column) - LENGTH(REPLACE(your_column, ',', ''))) + 1; ``` 请将上述代码的`your_table`替换为包含逗号分隔字符串的表名,`your_column`替换为包含逗号分隔字符串的列名。 3. 现在,临时表`temp_table`的每一行都包含一个拆分后的值。可以使用以下查询来检索这些值: ```sql SELECT value FROM temp_table; ``` 4. 最后,如果不再需要这个临时表,可以使用以下语句删除它: ```sql DROP TEMPORARY TABLE temp_table; ``` 通过这些步骤,你可以将逗号分隔字符串拆分临时表,并在需要时检索和处理这些值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值