>>>> 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/mysql?unsub=arch...@jab.org

Reply via email to