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

推荐订阅源

T
The Blog of Author Tim Ferriss
WordPress大学
WordPress大学
博客园 - Franky
The Cloudflare Blog
T
Tailwind CSS Blog
宝玉的分享
宝玉的分享
小众软件
小众软件
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Apple Machine Learning Research
Apple Machine Learning Research
月光博客
月光博客
B
Blog
Y
Y Combinator Blog
V
V2EX
有赞技术团队
有赞技术团队
M
MIT News - Artificial intelligence
博客园 - 司徒正美
IT之家
IT之家
G
Google Developers Blog
C
Check Point Blog
Engineering at Meta
Engineering at Meta
Microsoft Security Blog
Microsoft Security Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
GbyAI
GbyAI
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻

博客园 - 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');