apakah mungkin untuk mencari seluruh tabel database (baris dan kolom) untuk mengetahui string tertentu.
Saya memiliki Database bernama A dengan sekitar 35 tabel, saya perlu mencari string bernama "halo" dan saya tidak tahu pada tabel mana string ini disimpan. Apakah mungkin?
Menggunakan MySQL
Saya seorang admin linux dan saya tidak terbiasa dengan database, akan sangat membantu jika Anda dapat menjelaskan kueri juga.
Jawaban:
Lebih lanjut: http://winashwin.wordpress.com/2012/08/28/mysql-search/
sumber
Kembali pada bulan Juli 2012 saya menulis posting ini
Permintaan untuk menemukan dan mengganti teks di semua tabel dan bidang mysql db
Ini menggunakan tabel information_schema.columns untuk mengambil setiap bidang CHAR, VARCHAR, dan TEXT dan melakukan PENGGANTIAN tekstual .
Silakan lihat tautan lama saya dan gunakan paradigma untuk melakukan pencarian.
Sebagai contoh, ini akan membuat SELECT terpisah untuk setiap kolom teks di setiap tabel
Buat file teks SQL Giant dengan itu. Kemudian, jalankan skrip SQL Giant itu:
Output memberi tahu Anda Database, Tabel, dan Kolom tempat data muncul.
Cobalah !!!.
EDIT:
HARUS: tambahkan dua kutu kembali yang ditunjukkan di bawah ini untuk tabel yang memiliki spasi dalam namanya.
sumber
Mengambil pendekatan lain yang tidak memerlukan membangun query SQL, saya mengembangkan CRGREP sebagai alat baris perintah opensource gratis yang akan menangkap basis data (termasuk MySQL) dan mendukung jenis pencarian "fred customer.name" sederhana yang mencari "fred" di nama "" "kolom dari tabel" pelanggan "ke pencocokan pola yang lebih kompleks seperti" fr? d * .author "untuk pencocokan pola dengan semua kolom" penulis "di semua tabel.
sumber
Anda dapat mengembalikan semua kolom dari semua tabel yang cocok dengan nilai apa pun yang Anda cari sekaligus dengan membangun dari jawaban RolandoMySQLDBA dan menggunakan
PREPARE
danEXECUTE
menjalankan kueri .sumber
Jika Anda dapat menggunakan bash - ini adalah skrip: Dibutuhkan pengguna dbread dengan pass dbread pada database.
Jika ada yang menginginkan penjelasan: http://infofreund.de/?p=1670
sumber
Jika Anda admin Linux, Anda harus terbiasa dengan baris perintah, jadi yang ini berguna:
Ubah
root
/root
ke kredensial mysql Anda (atau gunakan~/.my.cnf
),db_name
ke nama database Anda danfoo
untuk teks pencarian Anda. Parameter--skip-extended-insert
untukmysqldump
akan menampilkan setiap permintaan dalam baris terpisah. Parameter--color=auto
untukgrep
akan menyoroti string Anda dan-w
akan cocok dengan seluruh kata.sumber
Apakah Anda memiliki akses ke phpMyAdmin? Ini memiliki fitur pencarian untuk setiap basis data.
atau gunakan skrip pilihan Anda pada hasil (ubah dbname):
sumber
Saya fokus pada solusi template sederhana untuk pertanyaan Anda diimplementasikan dalam plsql untuk database Oracle , saya berharap menyesuaikannya di MySql, menjadi melempar googleing sederhana. yang Anda butuhkan hanyalah menyelidiki skema informasi di MySql dan mengganti beberapa nama tabel dan kolom.
Dalam skrip:
ALL_TAB_COLUMNS
adalah tabel skema informasi yang berisi Semua Kolom Tabel 'VARCHAR2', 'NVARCHAR2', 'NCHAR', 'CHAR' mengacu pada tipe kolom string di Oracle, Anda harus menggantinya dengan nama jenis equvalents dari MySql% hello% adalah kata kunci pencarian ganti dengan string apa pun.
Hasilnya akan menjadi beberapa atau banyak skrip sql (berdasarkan pada jenis kolom tabel Anda) dan menjalankannya akan menghasilkan jawaban Anda
Juga kinerja dan konsumsi waktu akan menjadi masalah lain.
semoga ini bermanfaat
sumber
Ada perpustakaan yang bagus untuk membaca semua tabel, Ridona
sumber
Gunakan Trik Ini dengan Satu Baris Kode
column_name: Ketikkan semua nama kolom yang Anda cari.
table_name: Ketikkan semua nama Tabel di mana Anda mencari.
sumber
Jika Anda menggunakan MySQL Workbench, klik kanan pada skema database dan pilih "Cari Tabel Data ..." kemudian isi formulir. Ini akan mencari seluruh basis data. Ketika (atau jika) hasilnya muncul, klik panah untuk memperluas. Ini akan menampilkan skema, tabel, data kunci utama, nama kolom dan data aktual yang cocok dengan pencarian Anda.
Kiat: Jika tidak ada yang muncul, coba perluas pencarian Anda.
Harap perhatikan bahwa ini hanya sangat berguna untuk mencari tipe data teks (
char
,varchar
dantext
).sumber