冷眼 - 技术专栏

态度决定高度,责任胜于能力;思想比知识更重要,成长比成功更重要!

   :: 首页 ::  :: 联系 ::  :: 管理 ::
  14 随笔 :: 13 文章 :: 0 评论 :: 0 Trackbacks

在MySQL中执行动态拼接的SQL语句,有点麻烦,以下是一个简单的例子,经过测试没有问题。

mysql >  delimiter  //
mysql
>  create procedure sp_tests(out itotal intin scondition varchar(50))
    
->   begin
    
->     if scondition = '' then
    
->         set @sql = 'select count(*) into @total from users';
    
->     else
    
->         set @sql = concat('select count(*) into @total from users where ',scondition);
    
->     end if;
    
->
    
->     prepare s1 from @sql;
    
->     execute s1;
    
->     set itotal = @total;
    
->  end //
 
mysql
> delimiter ;
mysql
> call sp_tests(@itotal,'userid=1');
mysql
> select @itotal;
posted on 2008-05-16 13:22 冷眼 阅读(380) 评论(0)  编辑  收藏 所属分类: MySQL