惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

N
Netflix TechBlog - Medium
罗磊的独立博客
云风的 BLOG
云风的 BLOG
Last Week in AI
Last Week in AI
Y
Y Combinator Blog
小众软件
小众软件
Blog — PlanetScale
Blog — PlanetScale
T
The Blog of Author Tim Ferriss
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
月光博客
月光博客
博客园 - Franky
F
Fortinet All Blogs
D
Docker
博客园 - 司徒正美
腾讯CDC
Recent Announcements
Recent Announcements
The Cloudflare Blog
B
Blog RSS Feed
GbyAI
GbyAI
T
Tailwind CSS Blog
雷峰网
雷峰网
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
博客园 - 三生石上(FineUI控件)
阮一峰的网络日志
阮一峰的网络日志

博客园 - ok_008

解决GitHub加载和下载慢问题 mysql命令行爱好者必备工具mycli What is a Back Order Down Payment 和 Deposit的差异 Select逻辑顺序图 排名趋势公式 批量备份数据库脚本(PowerShell版) 批量替换存储过程内容脚本sp_SqlReplace 生成建表脚本up_CreateTable Data Model for Certificate Implementation of Message Receiver Data Model for Message Receiver SQL SERVER 批量生成编号 修改hosts文件 PHP-问题处理验证码无法显示出来 PHP-问题处理Fatal error: Uncaught Error: Call to undefined function mb_strlen() PHP-问题处理Fatal error: Uncaught Error: Call to undefined function simplexml_load_file() 10进制转33进制 PHP-生成缩略图和添加水印图-学习笔记 SQLServer地址搜索性能优化例子
mysql中实现字符串分割sp_split
ok_008 · 2019-04-04 · via 博客园 - ok_008

sp_split :

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.

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