mysql中实现字符串分割sp_split

 
sp_split :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
DELIMITER $$
 
CREATE DEFINER = 'test_user'@'%'
PROCEDURE sp_split (IN p_str varchar(2000), IN p_split varchar(50), p_table_insert varchar(50), p_col_insert varchar(50))
BEGIN
  IF p_str > '' THEN
    WHILE (INSTR(p_str, p_split) <> 0) DO
      SET @value = SUBSTRING(p_str, 1, INSTR(p_str, p_split) - 1);
      SET @sql = CONCAT('INSERT ', p_table_insert, '(', p_col_insert, ') VALUES (?)');
      PREPARE stmt FROM @sql;
      EXECUTE stmt USING @value;
      SET p_str = INSERT(p_str, 1, INSTR(p_str, p_split), '');
    END WHILE;
    SET @value = p_str;
    SET @sql = CONCAT('INSERT ', p_table_insert, '(', p_col_insert, ') VALUES (?)');
    PREPARE stmt FROM @sql;
    EXECUTE stmt USING @value;
    DEALLOCATE PREPARE stmt;
  END IF;
END
$$
 
DELIMITER ;

 

 
e.g.
 
 
1
2
3
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_stock (stock_id int);
TRUNCATE TABLE tmp_ou;
  CALL sp_split(p_ouid_list,',','tmp_ou','ou_id');

 

 
posted @   ok_008  阅读(3766)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
给我写信
点击右上角即可分享
微信分享提示