使用下列SQL查詢來生成您需要的所有列替換值的SQL查詢。
select concat(
'UPDATE my_table SET ',
column_name,
' = REPLACE(', column_name, ', ''a'', ''e'');')
from information_schema.columns
where table_name = 'my_table';
執行此SQL查詢後,只需運行所有查詢即可替換所有值。
未經測試後,一些使用Google
與這樣的核心創建一個存儲過程。它可以接受表格的名稱,要查找的值和要替換的值。
的主要思想是使用:
- 動態SQL執行準備的語句;
- 要遍歷表的所有列的遊標。
查看部分代碼(未經測試)在下面。
DECLARE done INT DEFAULT 0;
DECLARE cur1 CURSOR FOR
SELECT column_name FROM information_schema.columns
WHERE table_name = 'my_table';
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;
OPEN cur1;
REPEAT
SET s = concat(
'UPDATE my_table SET ',
column_name,
' = REPLACE(', column_name, ', ''a'', ''e'');');
PREPARE stmt2 FROM s;
EXECUTE stmt2;
FETCH cur1 INTO a;
UNTIL done END REPEAT;
CLOSE cur1;
dba.stackexchange.com/questions/21147/query-to-find-and-replace-text-in-all-tables-and-fields-of-a-mysql- db – Foreever 2015-10-15 05:23:49