BEGIN
DECLARE done INT DEFAULT -1;
DECLARE attr1 VARCHAR(40);
DECLARE V_SQL VARCHAR(20000) DEFAULT '';
DECLARE CURSOR_1 CURSOR FOR SELECT DISTINCT T.id FROM card_attr_model T;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done=1;
OPEN CURSOR_1;
myLoop: LOOP
/* 移动游标并赋值 */
FETCH CURSOR_1 INTO attr1;
IF done = 1 THEN
LEAVE myLoop;
END IF;
SET V_SQL = CONCAT( V_SQL, ',', 'MAX(IF(attrVal.cardAttr_id = ''', attr1, ''',
attrVal.attrValue, null)) AS ''', attr1, '''' );
END LOOP myLoop;
/* 关闭游标 */
CLOSE CURSOR_1;
SET V_SQL = CONCAT('CREATE OR REPLACE VIEW ATTRRESULT AS select attrVal.insItem_id', V_SQL,
' from ins_item_attr attrVal Group by attrVal.insItem_id');
EXECUTE stmt;
END */$$
DELIMITER ;
DECLARE done INT DEFAULT -1;
DECLARE attr1 VARCHAR(40);
DECLARE V_SQL VARCHAR(20000) DEFAULT '';
DECLARE CURSOR_1 CURSOR FOR SELECT DISTINCT T.id FROM card_attr_model T;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done=1;
OPEN CURSOR_1;
myLoop: LOOP
/* 移动游标并赋值 */
FETCH CURSOR_1 INTO attr1;
IF done = 1 THEN
LEAVE myLoop;
END IF;
SET V_SQL = CONCAT( V_SQL, ',', 'MAX(IF(attrVal.cardAttr_id = ''', attr1, ''',
attrVal.attrValue, null)) AS ''', attr1, '''' );
END LOOP myLoop;
/* 关闭游标 */
CLOSE CURSOR_1;
SET V_SQL = CONCAT('CREATE OR REPLACE VIEW ATTRRESULT AS select attrVal.insItem_id', V_SQL,
' from ins_item_attr attrVal Group by attrVal.insItem_id');
SET @mysql = V_SQL;
// select V_SQL ;
PREPARE stmt FROM @mysql;EXECUTE stmt;
END */$$
DELIMITER ;