• 存储过程修改产品描述页图片alt描述信息


    今天修改了所有产品的图片信息,用到了存储过程。在参考下面存储过程以后,终于搞定了。

     1 BEGIN
     2      DECLARE Done INT DEFAULT 0;
     3     
     4      DECLARE CurrentLingQi INT;
     5     
     6      DECLARE ShizuName VARCHAR(30);
     7      /* 声明游标 */
     8      DECLARE rs CURSOR FOR SELECT NodeName, LingQi FROM socialrelation;
     9      /* 异常处理 */
    10      DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET Done = 1;
    11     
    12      /* 打开游标 */
    13      OPEN rs;  
    14     
    15      /* 逐个取出当前记录LingQi字段的值,需要进行最大值的判断 */
    16      FETCH NEXT FROM rs INTO ShizuName, CurrentLingQi;     
    17      /* 遍历数据表 */
    18      REPEAT
    19            IF NOT Done THEN
    20               SET CurrentLingQi = CurrentLingQi + 60;
    21               /* 如果更新后灵气值大于允许的最大值,则就设置为最大值 */
    22               IF CurrentLingQi >= 1800 THEN
    23                  UPDATE socialrelation SET LingQi = 1800 WHERE NodeName = ShizuName;
    24               ELSE
    25               /* 否则,正常更新 */
    26                  UPDATE socialrelation SET LingQi = LingQi + 60 WHERE NodeName = ShizuName;
    27               END IF;
    28            END IF;
    29           
    30      FETCH NEXT FROM rs INTO ShizuName, CurrentLingQi;
    31 
    32      UNTIL Done END REPEAT;
    33     
    34      /* 关闭游标 */
    35      CLOSE rs;
    36 END
    

      把写的存储过程也记录下来,作为以后参考。在感谢罗浮宫的童鞋们。感谢伊罗生。

    begin
    DECLARE Done INT DEFAULT 0;
    declare pid int(11);
    declare miaoshu text;
    declare topnamePosition int(11);
    declare startTopname int(11);
    declare revPos int(11);
    declare miaoshuLength int(11);
    declare endTopname int(11);
    declare pname VARCHAR(255);
    declare topnameLength text;
    declare topnameTag text;
    declare reverseMiaoshu text;
    declare rs cursor for select productid,productname,chanpinmiaoshu from product;
    declare CONTINUE HANDLER FOR SQLSTATE '02000' SET Done = 1;
    open rs;
    fetch next from rs into pid,pname,miaoshu;
    repeat
    		if not done then
    			  set miaoshuLength=CHARACTER_LENGTH(miaoshu);
    			  set topnamePosition=position("13733681492079.jpg" in miaoshu);
    			  set endTopname=locate(">",miaoshu,topnamePosition);
    			  set reverseMiaoshu=reverse(miaoshu);
    				set revPos=miaoshuLength-topnamePosition;
    			  set startTopname=locate("gmi<",reverseMiaoshu,revPos);
    			  set startTopname=miaoshuLength-startTopname;
    				set topnameLength=endTopname-startTopname;
    			  set topnameTag=substring(miaoshu,startTopname-2,topnameLength+3);
    				select pid,topnameTag;
    			  update product set `chanpinmiaoshu`=replace(`chanpinmiaoshu`,trim(topnameTag),'<img src="/ueditor/php/upload/20130709/13733681492079.jpg" width="740" height="651" border="0" hspace="0" vspace="0" style="740px;height:651px;" alt="熊猫银币投资">') where productid=pid;
    		 end if;
    		 fetch next from rs into pid,pname,miaoshu;
    until done end repeat;
    close rs;
    end
    

      

     
    如果感觉不错,请 一个!
    by simpman
  • 相关阅读:
    c语言,动态数组
    利用Word来发布博客到博客园(onenote类似)
    c语言,volatile
    c语言,变长数组
    C语言,sprintf与sscanf函数[总结]
    c语言,数组和指针
    Linux的notifier机制的应用
    Linux进程上下文切换过程context_switch详解--Linux进程的管理与调度(二十一)
    内核线程的进程描述符task_struct中的mm和active_mm
    Linux用户抢占和内核抢占详解(概念, 实现和触发时机)--Linux进程的管理与调度(二十)
  • 原文地址:https://www.cnblogs.com/simpman/p/3246546.html
Copyright © 2020-2023  润新知