随笔 - 382  文章 - 14  评论 - 509 

  
       停了半天的电,看了半天的<老子>,然后......
        
       (思绪飞弛.....)

       发现像排行榜更新之类的应用,还是用存储过程舒服,一个叫uch_zcount的表里有zcid,total,heronum 三个字段,现在要求按total从大到小把排行次序写到heronum字段中,zcid为自增字段........写了如下的存储过程:

DELIMITER $$;

DROP PROCEDURE IF EXISTS `zyf`.`getcount`$$

CREATE DEFINER=`root`@`%PROCEDURE `getcount`()
BEGIN
set @ok=1;
set @i =1;
set @zcid=0;
select count(*into @ok from uch_zcount;

CREATE TEMPORARY TABLE tmp_tablezz (    
rowid 
bigint auto_increment primary key
zcbigint);

insert into tmp_tablezz (zcid) select zcid from uch_zcount order by total desc;
    
while @i <@ok+1 do 
    
update uch_zcount set heronum = @i where zcid= (select zcid from tmp_tablezz where rowid =@i);

    
set @i=@i+1;
    
end while;

drop table tmp_tablezz;
END$$

DELIMITER ;$$

        肯定有更好的方法......... MYSQL还是不熟地...
posted on 2008-07-11 18:28 玉米丰收 阅读(273) 评论(2)  编辑 收藏 网摘 所属分类: ×MySQL×

  回复  引用    
2008-09-25 18:03 | 我也喜欢 [未注册用户]
20.2.11. 光标 手册中
  回复  引用  查看    
2008-09-29 21:47 | 张玉峰      
呵呵,现在这东东据说违反设计模式,一般是不用了,不过……偶尔抄个近道感觉很爽。

标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
Google站内搜索
[推荐职位]上海盛大网络招聘架构师



China-pub 计算机图书网上专卖店!6.5万品种 2-8折!
近千种 9-95 新二手计算图书火热销售中!
开发者征途系统新作:《设计模式——基于C#的工程化实现及扩展》

相关文章:

相关链接: