zoukankan      html  css  js  c++  java
  • 怎样合并分支条件,减少代码行数?

    w怎样合并分支条件,减少代码行数?

     1 DROP PROCEDURE IF EXISTS w_self_update_amzasin;
     2 DELIMITER /w/
     3 CREATE PROCEDURE w_self_update_amzasin()
     4 BEGIN
     5   DECLARE done INT DEFAULT FALSE;
     6   DECLARE w_pkid INT;
     7   DECLARE w_asin VARCHAR(16);
     8   DECLARE w_country VARCHAR(6); 
     9   DECLARE wcur CURSOR FOR SELECT pkid,asin,country FROM amzasin;
    10   DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
    11 
    12   OPEN wcur;
    13   read_loop: LOOP
    14     FETCH wcur INTO w_pkid,w_asin,w_country;
    15     IF done THEN LEAVE read_loop;
    16     END IF;
    17         SET @w_nothhtps='www.amazon.';  
    18         SET @w_most=CONCAT(LOWER(w_country),'/product/dp/',w_asin);
    19         CASE  LOWER(w_country)
    20             WHEN 'ca' THEN SELECT 'w'; 
    21             WHEN 'in' THEN SELECT 'w'; 
    22             WHEN 'es' THEN SELECT 'w'; 
    23             WHEN 'it' THEN SELECT 'w'; 
    24             WHEN 'fr' THEN SELECT 'w'; 
    25 
    26             WHEN 'jp' THEN SET @w_most=CONCAT('co.',@w_most); 
    27             WHEN 'uk' THEN SET @w_most=CONCAT('co.',@w_most); 
    28 
    29             WHEN 'mx' THEN SET @w_most=CONCAT('com.',@w_most); 
    30 
    31             WHEN 'us' THEN SET @w_most=CONCAT('com/gp/product/',w_asin); 
    32       ELSE
    33         BEGIN
    34         END;
    35     END CASE;
    36 
    37         SET @w_nothhtps=CONCAT(@w_nothhtps,@w_most);
    38         SET @wtmp=CONCAT('UPDATE amzasin ',' SET url="',@w_nothhtps,'" WHERE pkid=',w_pkid);
    39         PREPARE  stmt FROM @wtmp ;
    40         EXECUTE  stmt ;
    41         DROP PREPARE stmt;
    42   END LOOP;
    43   CLOSE wcur;
    44 END/w/
    45 DELIMITER;
    46 CALL w_self_update_amzasin(); 

    ERROR

     1 DROP PROCEDURE IF EXISTS w_self_update_minerasinlist_minerasinlist;
     2 DELIMITER /w/
     3 CREATE PROCEDURE w_self_update_minerasinlist()
     4 BEGIN
     5   DECLARE done INT DEFAULT FALSE;
     6   DECLARE w_autoid INT;
     7   DECLARE w_asin VARCHAR(16);
     8   DECLARE w_countrycode VARCHAR(6); 
     9   DECLARE wcur CURSOR FOR SELECT autoid,asin,countrycode FROM minerasinlist;
    10   DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
    11 
    12   OPEN wcur;
    13   read_loop: LOOP
    14     FETCH wcur INTO w_autoid,w_asin,w_countrycode;
    15     IF done THEN LEAVE read_loop;
    16     END IF;
    17         SET @w_nothhtps='www.amazon.';  
    18         SET @w_most=CONCAT(LOWER(w_countrycode),'/product/dp/',w_asin);
    19         CASE  LOWER(w_countrycode)
    20                 WHEN 'ca' 
    21                 WHEN 'in' 
    22                 WHEN 'es' 
    23                 WHEN 'it' 
    24                 WHEN 'fr' THEN SELECT 'w'; 
    25 
    26                 WHEN 'jp' 
    27                 WHEN 'uk' THEN SET @w_most=CONCAT('co.',@w_most); 
    28 
    29                 WHEN 'mx' THEN SET @w_most=CONCAT('com.',@w_most); 
    30 
    31                 WHEN 'us' THEN SET @w_most=CONCAT('com/gp/product/',w_asin); 
    32       ELSE
    33         BEGIN
    34         END;
    35     END CASE;
    36 
    37         SET @w_nothhtps=CONCAT(@w_nothhtps,@w_most);
    38         SET @wtmp = CONCAT('UPDATE minerasinlist ',' SET url="',@w_nothhtps,'" WHERE autoid=',w_autoid);
    39         PREPARE  stmt FROM @wtmp ;
    40         EXECUTE  stmt ;
    41         DROP PREPARE stmt;
    42   END LOOP;
    43   CLOSE wcur;
    44 END/w/
    45 DELIMITER;
    46 CALL w_self_update_minerasinlist( ); 
  • 相关阅读:
    洛谷 P1875 佳佳的魔法药水
    洛谷 P4822 [BJWC2012]冻结
    洛谷 P6175 无向图的最小环问题
    洛谷 P1312 Mayan游戏
    洛谷 P1311 选择客栈
    洛谷 T150024 矩形面积并(扫描线)
    洛谷 P1311 选择客栈
    洛谷 P1514 引水入城
    洛谷 P1310 表达式的值
    求和(团队题目)
  • 原文地址:https://www.cnblogs.com/rsapaper/p/6323122.html
Copyright © 2011-2022 走看看