Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- DROP PROCEDURE IF EXISTS split_string;//
- CREATE PROCEDURE split_string (
- IN input TEXT,
- IN delimiter VARCHAR(10)
- )
- SQL SECURITY INVOKER
- BEGIN
- DECLARE cur_position INT DEFAULT 1 ;
- DECLARE remainder TEXT;
- DECLARE cur_string VARCHAR(1000);
- DECLARE delimiter_length TINYINT UNSIGNED;
- DROP TEMPORARY TABLE IF EXISTS SplitValues;
- CREATE TEMPORARY TABLE SplitValues (
- value VARCHAR(1000) NOT NULL PRIMARY KEY
- ) ENGINE=MEMORY;
- SET remainder = input;
- SET delimiter_length = CHAR_LENGTH(delimiter);
- WHILE CHAR_LENGTH(remainder) > 0 AND cur_position > 0 DO
- SET cur_position = INSTR(remainder, delimiter);
- IF cur_position = 0 THEN
- SET cur_string = remainder;
- ELSE
- SET cur_string = LEFT(remainder, cur_position - 1);
- END IF;
- IF TRIM(cur_string) != '' THEN
- INSERT INTO SplitValues VALUES (cur_string);
- END IF;
- SET remainder = SUBSTRING(remainder, cur_position +
- delimiter_length);
- END WHILE;
- END;
- //
- drop procedure IF EXISTS ordoneaza_interese;//
- CREATE PROCEDURE ordoneaza_interese(IN cid INT)
- BEGIN
- DECLARE done INT DEFAULT 0;
- DECLARE rec_cursor TEXT;
- DECLARE curs CURSOR FOR select `interese` from users where `comunitate_id`=cid;
- DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;
- DROP TEMPORARY TABLE IF EXISTS test1;
- CREATE TEMPORARY TABLE test1 (
- id int(10) unsigned NOT NULL PRIMARY KEY auto_increment,
- value TEXT
- ) ENGINE=MEMORY;
- OPEN curs;
- REPEAT
- FETCH curs INTO rec_cursor;
- IF NOT done THEN
- insert into test1 (id, value) VALUES(NULL, rec_cursor);
- END IF;
- UNTIL done END REPEAT;
- CLOSE curs;
- select * from test1;
- END;//
- call ordoneaza_interese(11);
- #select interese from users where comunitate_id=11
Add Comment
Please, Sign In to add comment