Gunakan kueri SQL berikut untuk menghasilkan kueri SQL yang Anda perlukan untuk mengganti nilai di semua kolom.
select concat(
'UPDATE my_table SET ',
column_name,
' = REPLACE(', column_name, ', ''a'', ''e'');')
from information_schema.columns
where table_name = 'my_table';
Setelah menjalankan kueri SQL ini, jalankan saja semua kueri untuk mengganti semua nilai.
Belum diuji setelah beberapa googling
Buat prosedur tersimpan dengan inti seperti ini. Ia dapat menerima nama tabel, nilai yang akan ditemukan, dan nilai yang akan diganti.
Ide utamanya adalah menggunakan:
- pernyataan yang disiapkan untuk eksekusi SQL dinamis;
- kursor untuk mengulangi semua kolom tabel.
Lihat sebagian kode (belum diuji) di bawah.
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;