50 lines
888 B
MySQL
50 lines
888 B
MySQL
|
DELIMITER $$
|
||
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn2008`.`niching`(IN i_ini INT, IN i_end INT
|
||
|
, IN i_bal INT, IN i_col INT )
|
||
|
BEGIN
|
||
|
|
||
|
DECLARE i INT(5);
|
||
|
DECLARE j INT(5);
|
||
|
|
||
|
DROP TEMPORARY TABLE IF EXISTS labels;
|
||
|
|
||
|
CREATE TEMPORARY TABLE `labels`
|
||
|
(`label` VARCHAR(15) NULL)
|
||
|
ENGINE=MEMORY DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
|
||
|
|
||
|
WHILE i_ini <= i_end DO
|
||
|
|
||
|
SET i = i_bal;
|
||
|
|
||
|
WHILE i > 0 DO
|
||
|
|
||
|
|
||
|
|
||
|
SET j = i_col;
|
||
|
IF j = 0 THEN
|
||
|
INSERT INTO labels(label)
|
||
|
VALUES (CONCAT(i_ini,IF(i=0,' ',char(64 + i))));
|
||
|
ELSE
|
||
|
|
||
|
WHILE j > 0 DO
|
||
|
|
||
|
INSERT INTO labels(label)
|
||
|
VALUES (CONCAT(i_ini,char(64 + i), j));
|
||
|
|
||
|
SET j = j - 1;
|
||
|
|
||
|
END WHILE;
|
||
|
END IF;
|
||
|
SET i = i - 1;
|
||
|
|
||
|
END WHILE;
|
||
|
|
||
|
SET i_ini = i_ini + 1;
|
||
|
|
||
|
END WHILE;
|
||
|
|
||
|
SELECT CONCAT('*',label,'*') as label, label as id FROM labels;
|
||
|
|
||
|
END$$
|
||
|
DELIMITER ;
|