Created
July 10, 2017 17:38
-
-
Save kevinquillen/8ef864f95f1f521962e672b760a76bbe to your computer and use it in GitHub Desktop.
Does a mass find+replace on Drupal field_*_value fields within tables - useful for when you need to replace a string in a huge amount of tables.
This file contains 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
CREATE PROCEDURE replaceFieldTextTo (IN v_string_from VARCHAR(255), IN v_string_to VARCHAR(255)) | |
BEGIN | |
DECLARE done INT DEFAULT FALSE; | |
DECLARE table_name_value VARCHAR(64); | |
DECLARE column_name_value VARCHAR(64); | |
DECLARE cursor_fields CURSOR FOR SELECT TABLE_NAME, COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME LIKE 'field_%_value'; | |
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE; | |
OPEN cursor_fields; | |
ColumnList: LOOP | |
FETCH cursor_fields INTO table_name_value, column_name_value; | |
IF done THEN | |
Leave ColumnList; | |
END IF; | |
SET @sql = CONCAT('UPDATE ', table_name_value, ' SET ', column_name_value, ' = replace(', column_name_value, ', "', v_string_from, '", "', v_string_to ,'")'); | |
PREPARE stmt FROM @sql; | |
EXECUTE stmt; | |
DEALLOCATE PREPARE stmt; | |
END LOOP; | |
CLOSE cursor_fields; | |
END; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment