UPDATE activities set keyword = REPLACE(keyword,',',',');
DROP PROCEDURE IF EXISTS myCursor;
CREATE PROCEDURE myCursor()
BEGIN
DECLARE done INT DEFAULT 0 ;
DECLARE tmpName VARCHAR(255) DEFAULT '' ;
DECLARE deleted INT;
DECLARE counter INT DEFAULT 0;
DECLARE keyword0 VARCHAR(255) DEFAULT '' ;
DECLARE keyword1 VARCHAR(255) DEFAULT '' ;
DECLARE ttmpName VARCHAR(255) DEFAULT '' ;
DECLARE oldcount INT DEFAULT 0;
DECLARE cur1 CURSOR FOR SELECT trim(keyword) AS keyword,is_deleted AS deleted FROM activities WHERE keyword IS NOT NULL AND trim(keyword) != '' AND is_deleted = 0;
##游标终止条件
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;
SET counter = (SELECT count(*) FROM activities WHERE keyword IS NOT NULL AND trim(keyword) != '' AND is_deleted = 0);
OPEN cur1;
FETCH cur1 INTO tmpName,deleted;
WHILE done != 1 and counter > 0 DO
##SELECT tmpName,deleted;
IF deleted = 0 THEN
SET ttmpName = tmpName;
WHILE ttmpName is not null and trim(ttmpName) != '' DO
SET keyword0 = trim(SUBSTRING_INDEX(ttmpName,',',1));
SET keyword1 = trim(SUBSTRING_INDEX(ttmpName,',',2));
SET oldcount = (select count(*) from keyword WHERE keyword = keyword0);
IF oldcount = 0 THEN
INSERT INTO keyword(keyword,count,is_deleted) VALUES(keyword0,1,0);
ELSE
UPDATE keyword SET count = (CASE WHEN count IS NULL THEN 1 ELSE count + 1 END) WHERE keyword = keyword0;
END IF;
SET ttmpName = (CASE WHEN keyword0 = keyword1 THEN '' ELSE trim(SUBSTR(ttmpName FROM CHAR_LENGTH(keyword0) + 2)) END);
END WHILE;
END IF;
FETCH cur1 INTO tmpName,deleted;
SET counter = counter - 1;
END WHILE;
CLOSE cur1;
END;
CALL myCursor();
DROP PROCEDURE IF EXISTS myCursor;
CREATE PROCEDURE myCursor()
BEGIN
DECLARE done INT DEFAULT 0 ;
DECLARE tmpName VARCHAR(255) DEFAULT '' ;
DECLARE deleted INT;
DECLARE counter INT DEFAULT 0;
DECLARE keyword0 VARCHAR(255) DEFAULT '' ;
DECLARE keyword1 VARCHAR(255) DEFAULT '' ;
DECLARE ttmpName VARCHAR(255) DEFAULT '' ;
DECLARE oldcount INT DEFAULT 0;
DECLARE cur1 CURSOR FOR SELECT trim(keyword) AS keyword,is_deleted AS deleted FROM activities WHERE keyword IS NOT NULL AND trim(keyword) != '' AND is_deleted = 0;
##游标终止条件
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;
SET counter = (SELECT count(*) FROM activities WHERE keyword IS NOT NULL AND trim(keyword) != '' AND is_deleted = 0);
OPEN cur1;
FETCH cur1 INTO tmpName,deleted;
WHILE done != 1 and counter > 0 DO
##SELECT tmpName,deleted;
IF deleted = 0 THEN
SET ttmpName = tmpName;
WHILE ttmpName is not null and trim(ttmpName) != '' DO
SET keyword0 = trim(SUBSTRING_INDEX(ttmpName,',',1));
SET keyword1 = trim(SUBSTRING_INDEX(ttmpName,',',2));
SET oldcount = (select count(*) from keyword WHERE keyword = keyword0);
IF oldcount = 0 THEN
INSERT INTO keyword(keyword,count,is_deleted) VALUES(keyword0,1,0);
ELSE
UPDATE keyword SET count = (CASE WHEN count IS NULL THEN 1 ELSE count + 1 END) WHERE keyword = keyword0;
END IF;
SET ttmpName = (CASE WHEN keyword0 = keyword1 THEN '' ELSE trim(SUBSTR(ttmpName FROM CHAR_LENGTH(keyword0) + 2)) END);
END WHILE;
END IF;
FETCH cur1 INTO tmpName,deleted;
SET counter = counter - 1;
END WHILE;
CLOSE cur1;
END;
CALL myCursor();