>>>> 2011/07/13 19:28 +0530, Adarsh Sharma >>>>
I think a procedure can do it easily , If I know the proper function for that.
<<<<<<<<
Well, here is a procedure that copies from one table, strips off the leading
slash-separated part and reverses it by dots, and inserts the original, the
reversed, and the trailing into a temporary table:
CREATE PROCEDURE URLR()
MODIFIES SQL DATA
BEGIN
DECLARE F, G INT;
DECLARE R, S, T VARCHAR(199);
DECLARE EOF BOOL DEFAULT 0;
DECLARE X CURSOR FOR SELECT URL FROM URL;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET EOF = 1;
CREATE TEMPORARY TABLE UU
( A VARCHAR(199) COMMENT 'original leading part'
, B VARCHAR(199) COMMENT 'dot-reversed leading part'
, C VARCHAR(199) COMMENT 'trailing part'
);
OPEN X;
FETCH X INTO S;
WHILE EOF = 0 DO
SET T = SUBSTRING_INDEX(S, '/', 1);
SET S = SUBSTRING(S, CHAR_LENGTH(T)+2);
SET G = 1, F = LOCATE('.', T), R = NULL;
WHILE F > 0 DO
SET R = CONCAT_WS('.', SUBSTRING(T, G, F-G), R);
SET G = F+1;
SET F = LOCATE('.', T, G);
END WHILE;
SET R = CONCAT_WS('.', SUBSTRING(T, G), R);
INSERT INTO UU VALUE (T, R, S);
FETCH X INTO S;
END WHILE;
CLOSE X;
END
It seemed to me that in your examples you only reversed the domain name around
its dot-separated words, and that this does.
--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe: http://lists.mysql.com/[email protected]