mysql中怎么实现对含有逗号的字符串进行以逗号分隔

J2EE 码拜 10年前 (2015-04-06) 2455次浏览 0个评论
 

mysql中怎么实现对含有逗号的字符串进行以逗号分隔

mysql中怎么实现对含有逗号的字符串进行以逗号分隔
为什么问个问题么人回答,都问过两个问题没人回答,这个网站的问题还是我请教的方式有问题呢
mysql中怎么实现对含有逗号的字符串进行以逗号分隔
20分
就正常的split 分割 。
mysql中怎么实现对含有逗号的字符串进行以逗号分隔
我是要在存储过程中写,好像mysql没有split函数吧,好像要自己建函数
mysql中怎么实现对含有逗号的字符串进行以逗号分隔
引用 2 楼 rui888 的回复:

就正常的split 分割 。

我是要在存储过程中写,好像mysql没有split函数吧,好像要自己建函数 

mysql中怎么实现对含有逗号的字符串进行以逗号分隔
20分
为什么要在数据库层面处理,先处理好再操作数据库也可以?
mysql中怎么实现对含有逗号的字符串进行以逗号分隔
20分
顶楼上
先读出数据解析完后在插入数据库
mysql中怎么实现对含有逗号的字符串进行以逗号分隔
20分
使用SUBSTRING_INDEX 及CONCAT试试吧
mysql中怎么实现对含有逗号的字符串进行以逗号分隔
20分
刚好有

CREATE OR REPLACE 
FUNCTION GetSubStr(                   --定义函数(此函数完成字符串拆分功能):
                   str in varchar2, --待分割的字符串
                   splitchar in varchar2 --分割标志
            )

 return split_tab
       IS
              restStr varchar2(2000) default GetSubStr.str;--剩余的字符串
              thisStr varchar2(18);--取得的当前字符串
              indexStr int;--临时存放分隔符在字符串中的位置


              v SPLIT_TAB := SPLIT_TAB(); --返回结果

            begin
                --dbms_output.put_line(restStr);
                 while length(restStr) != 0
                   LOOP
                     <<top>>
                     indexStr := instr(restStr,splitchar); --从子串中取分隔符的第一个位置

                     if indexStr = 0 and length(restStr) != 0  then--在剩余的串中找不到分隔符
                        begin
                          v.extend;
                          v(v.count) := SPLIT_ARR(Reststr);
                          return v;
                        end;
                     end if;

                     if indexStr = 1 then---第一个字符便为分隔符,此时去掉分隔符
                        begin
                             restStr := substr(restStr,2);
                             goto   top;
                        end;
                     end if;

                     if length(restStr) = 0 or restStr is null then
                        return v;
                     end if;

                     v.extend;
                     thisStr := substr(restStr,1,indexStr - 1); --取得当前的字符串
                     restStr := substr(restStr,indexStr + 1);---取剩余的字符串

                     v(v.count) := SPLIT_ARR(thisStr);
                   END LOOP;
                 return v;
            end;

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明mysql中怎么实现对含有逗号的字符串进行以逗号分隔
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!