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_tableSID
Sss
www
tttt
ffff

解决方案 »

  1.   

    i 循环中使用 SUBSTRING_INDEX(SUBSTRING_INDEX(p_ID_in,p_TD_ID_in ,i),p_TD_ID_in ,-1)即可
      

  2.   

    写个循环,一段段截取,或者直接拼成一个sql,prepare执行
      

  3.   


    create temporary  table  if not exists tmp_table
     (ServiceID VARCHAR(15) NOT NULL);
    SELECT  @IDepAirport='SELECT '''+ replace('jfhhffjj,gkggk,jk',',',''' UNION ALL SELECT ''')+''''
    INSERT tmp_table call(@IDepAirport);
    以前是在sql server上是可以的,但是mysql就不知道了
      

  4.   

    以前sql server的代码,
    DECLARE @DepCityCode TABLE( cityCode NVARCHAR(10)) set @NewDepAirport='aaa,bb,ccc' SELECT  @IDepAirport='SELECT '''+replace(@NewDepAirport,',',''' UNION ALL SELECT ''')+''''
    INSERT @DepCityCode EXEC(@IDepAirport)这样就会把'aaa,bb,ccc'拆分插入到表
    @DepCityCode 
     cityCode 
    aaa
    bbb
    ccc这个代码在mysql中如何去改啊
      

  5.   

    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> 
      

  6.   


    不对啊,怎么是在一个字段上我要的是分开的
    ttt
    aaaa
    bbbb
    ccccc
    ddddd