创建了一个函数,需要帮助计算字符串中的空格

时间:2013-11-30 01:11:36

标签: mysql

这是我的功能似乎不起作用。有没有人有建议?

 delimiter  # 
     Drop function if exists a_testbed.InternalBlankCount #  
         Create function a_testbed.InternalBlankCount ( 
         in_string int)  
        Returns int
          Begin 
        Declare v_blanks int; 
        if v_blanks is null then       
        Set v_blanks := 0;    
        else 
        Set v_blanks := length(in_string) - length(replace(in_string, ' ', ''));
        end if;     
        Return v_blanks; 
        end; # 

    Trying to produce output as a sample:
      select a_testbed.InternalBlankCount(hi how are you) #

1 个答案:

答案 0 :(得分:0)

首先,你的输入参数作为一个整数是一个问题...我会根据你合法地工作的预期长度来使用varchar ...然后,将空白的值默认为0,然后计算是否传入的字符串是非空的

CREATE FUNCTION a_testbed.InternalBlankCount( in_string varchar(200)) RETURNS int(11)
BEGIN
   Declare v_blanks int;
   Set v_blanks := 0;
   if NOT in_string is null then
      Set v_blanks := length(in_string) - length(replace(in_string, ' ', ''));
   END if;

   Return v_blanks; 
END