• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

把一个字符串拆分安插到临时表中

mysql 搞代码 7年前 (2018-06-05) 166次浏览 已收录 0个评论

把一个字符串拆分插入到临时表中
CREATE DEFINER=`root`@`localhost` PROCEDURE `p_commUsed_update_99`(p_ID_in varchar(4000),p_TD_ID_in varchar(10))
BEGIN
CREATE TEMPORARY TABLE tmp_table (SID VARCHAR(15) NOT NULL);

END;

mysql 中把一个存储过程的参数p_ID字符串根据逗号拆分插入到临时表中

P_ID = ‘sss,www,tttt,ffff’

tmp_table

SID
Sss
www
tttt
ffff

——解决方案——————–
用SQL语句直接拆分不行?
——解决方案——————–
写一个存储过程,或者函数,把字符串进行切割插入表变量或临时表中返回就行了
——解决方案——————–
i 循环中使用 SUBSTRING_INDEX(SUBSTRING_INDEX(p_ID_in,p_TD_ID_in ,i),p_TD_ID_in ,-1)即可
——解决方案——————–
写个循环,一段段截取,或者直接拼成一个sql,prepare执行
——解决方案——————–
mysql> create procedure sp_testsubstring(a varchar(100))
-> begin
-> declare c int;
-> select length(a)-length(replace(a,’,’,”)) into c;
-> select c,a;
-> while c > 0 do
-> select substring_index(a,’,’,1) as t;
-> set a=substring(a,instr(a,’,’)+1,length(a));
-> set c=c-1;
-> end while;
-> select a as t;
-> end
-> /
Query OK, 0 rows affected (0.00 sec)

mysql> call sp_testsubstring(‘a,b,c’)/
+——+——-+
| c | a |
+——+——-+
| 2 | a,b,c |
+——+——-+
1 row in set (0.00 sec)

+——+
| t |
+——+
| a |
+——+
1 row in set (0.00 sec)

+——+
| t |
+——+
| b |
+——+
1 row in set (0.00 sec)

+——+
| t |
+——+
| c |
+——+
1 row in set (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

mysql>


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:把一个字符串拆分安插到临时表中

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址