mysql5.5中使用PROCEDURE进行范围操作

langya123 发布于 2013/07/30 16:43
阅读 94
收藏 0

请教一下:

    在mysql5.5里面怎么使用procedure,进行where in ()条件的操作,

    create procedure ted4 (param1 varchar(100))

        begin update n_time set t_counts=t_counts+1 where t_timepoint in (param1); end


    在每次调用的时候,只能执行里面的第一条数据,:

        mysql> call ted4 ('1,2,5');
        Query OK, 1 row affected
    

    这是怎么回事呀,望赐教,谢谢


加载中
0
z
zhaorr
当in后面是变量时,只能查出一条,改用find_in_set()吧
0
天冰
天冰

正解是这样的:

create procedure ted4 (in ids text)
begin 
  set @str=concat("update n_time set t_counts=t_counts+1 where t_timepoint in(",ids,")");
  --select @str ;
  prepare stmt from @str ;
  execute stmt;
end

返回顶部
顶部