Created
November 1, 2012 14:53
-
-
Save dbolser/3994101 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
DELIMITER $$ | |
DROP PROCEDURE IF EXISTS GetAllDistinctValuesByColumnName$$ | |
CREATE PROCEDURE GetAllDistinctValuesByColumnName (ColName VARCHAR(255)) | |
BEGIN | |
DECLARE no_more_tables INT DEFAULT 0; | |
DECLARE my_table VARCHAR(255); | |
DECLARE cur_tables CURSOR FOR | |
SELECT DISTINCT | |
TABLE_NAME | |
FROM | |
INFORMATION_SCHEMA.COLUMNS | |
WHERE | |
TABLE_SCHEMA = DATABASE() | |
AND | |
COLUMN_NAME = ColName; | |
DECLARE CONTINUE HANDLER FOR NOT FOUND | |
SET no_more_tables = 1; | |
/* for loggging information */ | |
CREATE TEMPORARY TABLE temp_my_values ( | |
my_value VARCHAR(255) | |
); | |
OPEN cur_tables; | |
FETCH cur_tables INTO my_table; | |
REPEAT | |
SET @ugly_sql := CONCAT(' | |
INSERT INTO temp_my_values | |
SELECT DISTINCT ', ColName, ' FROM ', my_table); | |
PREPARE mySt FROM @ugly_sql; EXECUTE mySt; | |
FETCH cur_tables INTO my_table; | |
UNTIL no_more_tables = 1 | |
END REPEAT; | |
CLOSE cur_tables; | |
SELECT DISTINCT my_value FROM temp_my_values; | |
DROP TABLE temp_my_values; | |
END$$ | |
DELIMITER ; | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment