在MySql 中使用存储过程分割字符串

 在Mysql中创建了一个存储过程,用来分隔字符串,如下:

  1. DROP TABLE IF EXISTS `GetPopWord`;
  2. CREATE DEFINER=`scada`@`%` PROCEDURE `GetPopWord`(inout SourceString nvarchar(4000) , inout Firstword nvarchar(4000),delimiter nvarchar(10))
  3. begin
  4.      DECLARE  Oldword        NVARCHAR(4000);
  5.      DECLARE LengthSource         INT;
  6.      DECLARE cur_position INT;
  7.      set Oldword = SourceString;
  8. if Oldword is not null then
  9.       SET cur_position = INSTR(Oldword,delimiter);
  10.      SET LengthSource = CHAR_LENGTH(Oldword);
  11.       if cur_position = 0 then
  12.            set Firstword = Oldword;
  13.            set SourceString = '';
  14.      else
  15.            set  Firstword = LEFT(Oldword,cur_position -1 );
  16.            set  SourceString=SUBSTRING(Oldword,cur_position+1,LengthSource- cur_position);
  17.       end if;
  18. else
  19.      set  SourceString = null;
  20.      set  Firstword       = null;
  21. end if;
  22. end;

 

在Mysql Front的界面的查询页面中,安如下语法调用:

 

    set @b = 'sss,bbb,cc';
    set @c = '';

    call GetPopWord(@b,@c,',');
    select  @c as `第一个字符` ,@b as `剩下的` ;

 

执行的结果是:

第一个字符    剩下的

sss                    bbb,cc

 

 

 

 

 

 

 

 

你可能感兴趣的:(c,mysql,存储)