两个参数:s0,s1 均为Varchar型。
s0格式,关键字1,关键字2,关键字3,关键字4.......[关键字以“,”隔开]
s1格式与s0相同。
返回返回s1中的关键字在s0中出现的次数。不知道表达清了没有。

解决方案 »

  1.   

    s0 = 'a,b,c,d,e,f,g';
    s1 = 'a,b,d'
    则返回3;s1中有a,b,d,若s1 = 'a,b,z' 则返回2;
    右s1 = 'aa,bb' 则返回0;
      

  2.   

    set @s =  1;
    set @f = '';
    DECLARE v1 INT DEFAULT 5;
    SET v1 = v1 - 1
    while @s<10
    @f = CONCAT(@f,v1);
        set v1= v1+1;
    end WHILE;
    select @f;
    有问题吗?报以下错误。MySql刚入门。Query OK, 0 rows affected (0 ms)Query OK, 0 rows affected (15 ms)You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DECLARE v1 INT DEFAULT 5' at line 1
      

  3.   

    思路:
    拆分S1字符串,用REPALCE替换S1的字符为'',用LEN原始-LEN替换后的字符串,得到长度,
    其中拆分S1字符串难点
      

  4.   

    C#代码可以写,但MYSQL中的不知道如何下手~
      

  5.   


    MYSQL能用C#下的函数?但这里是存储过程要用啊。
      

  6.   

    呵呵,我以为你要在C#程序中,在MYSQL中只能用MYSQL的函数。
      

  7.   

    Maybe you didn't search the same problem before.  char_length(s0)-char_length(replace(s0,s1,''))
      

  8.   


    s1关键字的顺序不一定按s0的顺序来啊。s0 = 关键字1,关键字2,关键字3,关键字4
    s1 = 关键字2,关键字1

    s1 = 关键字1,关键字2得出来的结果得一样。
      

  9.   


    我也是这样的想法。但MYSQL写起函数来很是麻烦。不知道效率如何?
      

  10.   

    用LENGTH(S1)-LENGTH(REPLACE(S1,',',''))来取得逗号的个数
    用SUBSTRING_INDEX(s0,',',i)取第几次出现