Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Ganti semua bidang di MySQL

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:

  1. pernyataan yang disiapkan untuk eksekusi SQL dinamis;
  2. 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;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Menginstal MySQL 8.0 di RHEL/CentOS 8/7 dan Fedora 35

  2. Bagaimana cara Memperbarui tabel yang sama saat dihapus di MYSQL?

  3. Pilih MAX atau Pesan Dengan Batas 1

  4. Pengkodean karakter Yunani berfungsi dalam HTML tetapi tidak dalam PHP

  5. PHP MySQL mysql_fetch_assoc dengan kunci array dibedakan dengan sebutan 'sebagai'