Anda dapat mengintip ke dalam information_schemaskema. Ini memiliki daftar semua tabel dan semua bidang yang ada dalam tabel. Anda kemudian dapat menjalankan kueri menggunakan informasi yang Anda dapatkan dari tabel ini.
Tabel yang terlibat adalah SCHEMATA, TABLES, dan COLUMNS. Ada kunci asing sedemikian rupa sehingga Anda dapat membangun dengan tepat bagaimana tabel dibuat dalam suatu skema.
ini bukan jawaban yang saya inginkan, tetapi saya harus menerima kebenaran. : D Terima kasih
RSilva
1
Ini benar, tetapi jawaban @Dan Rather membantu juga, karena db yang saya lihat adalah pengaturan yang tidak jelas dan saya tidak tahu apa nama kolom atau tabel yang pasti hanya dengan melihat ...
DrCord
12
information_schemaadalah database, bukan tabel. Beberapa klarifikasi pada tabel mana untuk mencari di dalam information_schemaakan baik!
CaptSaltyJack
3
Agak lucu bagi saya bahwa MySql tidak menyediakan cara untuk mencari semua tabel. Sepertinya pilihan yang sangat sederhana
Ini adalah cara "standar" (de facto) untuk mencari seluruh DB. Saya suka mysqldump -Tyang membuat dua file per tabel dalam direktori yang ditentukan. Saya kemudian grep <search> *di dir, dan apa yang dikembalikan adalah file tablename.txt atau .sql. File txt menyimpan data untuk tabel (tab dibatasi, ganti nama menjadi csv untuk dibuka di Excel), dan sql menampung definisi tabel, Anda dapat menebaknya: SQL. Dengan cara ini Anda mencari semuanya dan mudah untuk mempersempit lokasi data Anda. Metode ini bisa sangat sulit untuk bekerja di lingkungan tertentu. Stack Overflow sangat membantu di sini.
Joel Mellon
Ketika Anda memiliki SQL besar, atau mungkin dalam arsip - Anda dapat membukanya di MC tepat di server, lalu lihat-> Cari
Vitaly Zdanevich
1
Saran yang bagus! Tapi, itu tidak akan berfungsi jika file db dump benar-benar besar (situasi yang saya alami sekarang :))
Boban
207
Jika Anda menginstal phpMyAdmin, gunakan fitur 'Cari'.
Pilih DB Anda
Pastikan Anda memiliki DB yang dipilih (bukan tabel, jika tidak, Anda akan mendapatkan dialog pencarian yang sama sekali berbeda)
Klik tab 'Cari'
Pilih istilah pencarian yang Anda inginkan
Pilih tabel untuk dicari
Saya telah menggunakan ini pada hingga 250 tabel / 10GB basis data (pada server yang cepat) dan waktu responsnya sangat luar biasa.
Salah satu basis data kami adalah 92.7Gb dan opsi ini berfungsi dengan baik. Solusi hebat
Tricky
5
Saya selalu lupa apa yang bisa dilakukan semua phpMyAdmin. Ini alat yang hebat!
Ville
1
Sangat cepat, dan bermanfaat di Magento db saya. Menemukan bidang untuk data yang saya cari dalam beberapa detik, dan juga semua tabel lain yang mereferensikannya.
mtrueblood
1
MySQL Workbench memiliki fitur ini juga: "Database >> Cari Tabel Data ..."
matt wilkie
1
Bagus! sekarang bagaimana Anda mengganti string yang dicari di phpmyadmin?
Pathros
46
Fungsi PHP:
function searchAllDB($search){
global $mysqli;$out ="";$sql ="show tables";$rs =$mysqli->query($sql);if($rs->num_rows >0){while($r =$rs->fetch_array()){$table=$r[0];$out .=$table.";";$sql_search ="select * from ".$table." where ";$sql_search_fields = Array();$sql2 ="SHOW COLUMNS FROM ".$table;$rs2 =$mysqli->query($sql2);if($rs2->num_rows >0){while($r2 =$rs2->fetch_array()){$column=$r2[0];$sql_search_fields[]=$column." like('%".$search."%')";}$rs2->close();}$sql_search .= implode(" OR ",$sql_search_fields);$rs3 =$mysqli->query($sql_search);$out .=$rs3->num_rows."\n";if($rs3->num_rows >0){$rs3->close();}}$rs->close();}return$out;}
Tidak lagi berfungsi untuk PHP7. (mysql_connect ditinggalkan dalam PHP 5.5.0, dihapus dalam PHP 7.0.0)
iDev247
12
Jika Anda menghindari stored proceduresseperti wabah, atau tidak dapat melakukan mysql_dumpkarena izin, atau menjalankan berbagai alasan lainnya.
Saya akan menyarankan pendekatan tiga langkah seperti ini:
1) Di mana kueri ini membangun banyak kueri sebagai set hasil.
#=================# VAR/CHAR SEARCH
#=================# BE ADVISED USEANYOF THESE WITH CAUTION
# DON'T RUN ON YOUR PRODUCTION SERVER
# ** USE AN ALTERNATE BACKUP **
SELECT
CONCAT('SELECT*FROM', A.TABLE_SCHEMA, '.', A.TABLE_NAME,
'WHERE', A.COLUMN_NAME, 'LIKE\'%stuff%\';')FROM INFORMATION_SCHEMA.COLUMNS A
WHERE
A.TABLE_SCHEMA !='mysql'AND A.TABLE_SCHEMA !='innodb'AND A.TABLE_SCHEMA !='performance_schema'AND A.TABLE_SCHEMA !='information_schema'AND(
A.DATA_TYPE LIKE'%text%'OR
A.DATA_TYPE LIKE'%char%');
.
#=================# NUMBER SEARCH
#=================# BE ADVISED USEWITH CAUTION
SELECT
CONCAT('SELECT * FROM ', A.TABLE_SCHEMA,'.', A.TABLE_NAME,' WHERE ', A.COLUMN_NAME,' IN (\'%1234567890%\');')FROM INFORMATION_SCHEMA.COLUMNS A
WHERE
A.TABLE_SCHEMA !='mysql'AND A.TABLE_SCHEMA !='innodb'AND A.TABLE_SCHEMA !='performance_schema'AND A.TABLE_SCHEMA !='information_schema'AND A.DATA_TYPE IN('bigint','int','smallint','tinyint','decimal','double');
.
#=================# BLOB SEARCH
#=================# BE ADVISED THIS IS CAN END HORRIFICALLY IF YOU DONT KNOW WHAT YOU ARE DOING
# YOU SHOULD KNOW IF YOU HAVE FULL TEXT INDEXONORNOT# MISUSE AND YOU COULD CRASH A LARGE SERVER
SELECT
CONCAT('SELECT CONVERT(',A.COLUMN_NAME,' USING utf8) FROM ', A.TABLE_SCHEMA,'.', A.TABLE_NAME,' WHERE CONVERT(',A.COLUMN_NAME,' USING utf8) IN (\'%someText%\');')FROM INFORMATION_SCHEMA.COLUMNS A
WHERE
A.TABLE_SCHEMA !='mysql'AND A.TABLE_SCHEMA !='innodb'AND A.TABLE_SCHEMA !='performance_schema'AND A.TABLE_SCHEMA !='information_schema'AND A.DATA_TYPE LIKE'%blob%';
Hasilnya akan terlihat seperti ini:
2) Anda bisa adil Right Clickdan menggunakanCopy Row (tab-separated)
3) Rekatkan hasil di jendela kueri baru dan jalankan ke isi hati Anda.
Detail: Saya mengecualikan skema sistem yang biasanya tidak Anda lihat di meja kerja kecuali Anda memiliki opsi yang Show Metadata and Internal Schemasdiperiksa.
Saya melakukan ini untuk memberikan cara cepat ke ANALYZEseluruh HOST atau DB jika diperlukan atau menjalankan OPTIMIZEpernyataan untuk mendukung peningkatan kinerja.
Saya yakin ada berbagai cara yang dapat Anda lakukan untuk melakukan ini, tetapi inilah yang bekerja untuk saya:
-- ========================================== DYNAMICALLY FIND TABLES AND CREATE A LIST OF QUERIES IN THE RESULTS TO ANALYZE THEMSELECT CONCAT('ANALYZE TABLE ', TABLE_SCHEMA,'.', TABLE_NAME,';')FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA ='dbname';-- ========================================== DYNAMICALLY FIND TABLES AND CREATE A LIST OF QUERIES IN THE RESULTS TO OPTIMIZE THEMSELECT CONCAT('OPTIMIZE TABLE ', TABLE_SCHEMA,'.', TABLE_NAME,';')FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA ='dbname';
Diuji pada Versi MySQL: 5.6.23
PERINGATAN: JANGAN RUN INI JIKA:
Anda khawatir menyebabkan Table-locks (mengawasi koneksi klien Anda)
Anda tidak yakin dengan apa yang Anda lakukan.
Anda mencoba membuat Anda marah DBA. (Anda mungkin memiliki orang-orang di meja Anda dengan kecepatan .)
Jelas bukan sesuatu yang ingin Anda jalankan di live db tetapi membantu untuk tugas debugging tertentu. Ini gagal meskipun jika jenis kolom tidak dibandingkan dengan string. Yaitu kolom int.
Michael Thessel
Poin bagus, saya menambahkan tiga alternatif untuk mencari melalui gumpalan, karakter, atau int. Ini hanya Generalisasi dan harus SELALU digunakan dengan HATI-HATI. JANGAN SEKALI pada PRODUKSI seperti yang Anda sebutkan, itulah yang biasanya membuat Anda dipecat "Menemukan skrip di internet dan tidak memahaminya, tetapi masih menjalankannya" tetapi, hei itulah cara orang belajar dengan cara yang sulit.
JayRizzo
8
Saya juga melakukan crawler mysql saya sendiri untuk mencari beberapa konfigurasi wordpress, tidak dapat menemukannya di antarmuka dan database, dan dump database terlalu berat dan tidak dapat dibaca. Saya harus mengatakan saya tidak bisa melakukannya tanpanya sekarang.
Ini berfungsi seperti yang dari @Olivier, tetapi mengelola database eksotis / nama tabel dan LIKE-joker aman.
Saya mendapatkan kesalahan ini: Kesalahan fatal: Pengecualian 'PDOException' tanpa pesan 'SQLSTATE [42000]: Kesalahan sintaks atau pelanggaran akses: 1064 Anda memiliki kesalahan dalam sintaks SQL Anda; periksa manual yang sesuai dengan versi server MySQL Anda untuk sintaks yang tepat untuk digunakan di dekat 'key LIKE REPLACE (REPLACE (REPLACE (REPLACE (REPLACE (REPLACE (REPLACE), REPLACE (' 180well * ',' \\ ',' \\\\), '% ',' pada baris 1 '
LLBBL
6
Ini adalah permintaan paling sederhana untuk membuka kembali semua Kolom dan Tabel
SELECT*FROM information_schema.`COLUMNS` C WHERE TABLE_SCHEMA ='YOUR_DATABASE'
Semua tabel atau tabel dengan nama string tertentu dapat dicari melalui tab Pencarian di phpMyAdmin.
Terima kasih! Pertama kali saya menggunakan meja kerja. Cukup intuitif, itu mengarahkan saya ke meja yang saya butuhkan dan saya dapat menemukannya dari sana.
joshmiller
6
Meskipun pertanyaan ini sudah lama, berikut adalah bagaimana Anda bisa melakukannya jika Anda menggunakan mysql workbench 6.3. (Kemungkinan besar itu juga berfungsi untuk versi lain)
Klik kanan skema Anda dan "Cari data tabel", masukkan nilai Anda dan tekan "Mulai Pencarian". Itu dia.
ketika saya menjalankan CALL findAll('tbl_test','abb'), saya melewatkan kesalahan ini: # 1267 - Campuran ilegal dari kumpulan (utf8_general_ci, IMPLICIT) dan (utf8_unicode_ci, IMPLICIT) untuk operasi '=' Bisakah Anda memperbaikinya? Terima kasih!
Davuz
6
Ini adalah cara sederhana yang saya tahu. Pilih DB Anda di PHPMyAdmin, dan buka tab "Cari" dan tulis apa yang ingin Anda temukan dan di mana Anda akan mencari. Pilih semua tabel jika Anda akan mencari kata-kata dari semua tabel. Lalu "GO" dan lihat hasilnya.
+1 Tampaknya melakukan pekerjaan dengan baik dan merupakan alat yang berguna yang menyimpan faff yang terlibat dalam beberapa jawaban lainnya. Juga patut dicatat bahwa ini memungkinkan Anda untuk memilih basis data mana yang akan dicari.
Steve Chambers
3
Anda bisa menggunakannya
SHOW TABLES;
Kemudian dapatkan kolom di tabel tersebut (dalam satu lingkaran) dengan
SHOW COLUMNS FROMtable;
dan kemudian dengan info itu buat banyak pertanyaan yang Anda juga dapat UNION jika Anda perlu.
Tapi ini sangat berat di database. Khususnya jika Anda melakukan pencarian LIKE.
Solusi ini
a) hanya MySQL, tidak perlu bahasa lain, dan
b) mengembalikan hasil SQL, siap untuk diproses!
#Search multiple database tables and/or columns
#Version 0.1- JK 2014-01#USAGE:1.set the search term @search,2.set the scope by adapting the WHERE clause of the `information_schema`.`columns` query
#NOTE: This is a usage example and might be advanced by setting the scope through a variable, putting it allin a function,and so on...#define the search term here (using rules for the LIKE command, e.g %as a wildcard)SET@search ='%needle%';#settings
SET SESSION group_concat_max_len :=@@max_allowed_packet;#ini variable
SET@sql =NULL;#query for prepared statement
SELECT
GROUP_CONCAT("SELECT '",`TABLE_NAME`,"' AS `table`, '",`COLUMN_NAME`,"' AS `column`, `",`COLUMN_NAME`,"` AS `value` FROM `",TABLE_NAME,"` WHERE `",COLUMN_NAME,"` LIKE '",@search,"'" SEPARATOR "\nUNION\n")AS col
INTO@sql
FROM`information_schema`.`columns`WHERE TABLE_NAME IN(SELECT TABLE_NAME FROM`information_schema`.`columns`WHERE
TABLE_SCHEMA IN("my_database")&& TABLE_NAME IN("my_table1","my_table2")|| TABLE_NAME LIKE"my_prefix_%");#prepare andexecute the statement
PREPARE stmt FROM@sql;EXECUTE stmt;DEALLOCATE PREPARE stmt;
Untuk solusi semacam ini biasanya menambahkannya ke phpfiddler akan menyenangkan sehingga orang dapat melihat dan bahkan mengomentari solusi Anda. :)
pal4life
Saya mendapatkan kesalahan #1243 - Unknown prepared statement handler (stmt) given to EXECUTEsaat menjalankan kueri Anda di Phpmyadmin untuk mencari di seluruh basis data
Vicky Dev
@VickyDev Saya tahu sudah lebih dari setahun sejak pertanyaan Anda. Maaf. Namun demikian: Saya pikir ada sesuatu yang salah dalam skrip Anda karena stmt dideklarasikan di baris di atas EXECUTE. Versi MySQL mana yang Anda gunakan?
Chonez
2
Saya memodifikasi jawaban PHP dari Olivier sedikit ke:
cetak hasil di mana string ditemukan
hilangkan tabel tanpa hasil
juga tampilkan keluaran jika nama kolom cocok dengan input pencarian
tampilkan jumlah total hasil
function searchAllDB($search){
global $mysqli;$out ="";$total =0;$sql ="SHOW TABLES";$rs =$mysqli->query($sql);if($rs->num_rows >0){while($r =$rs->fetch_array()){$table=$r[0];$sql_search ="select * from ".$table." where ";$sql_search_fields = Array();$sql2 ="SHOW COLUMNS FROM ".$table;$rs2 =$mysqli->query($sql2);if($rs2->num_rows >0){while($r2 =$rs2->fetch_array()){$colum =$r2[0];$sql_search_fields[]=$colum." like('%".$search."%')";if(strpos($colum,$search)){
echo "FIELD NAME: ".$colum."\n";}}$rs2->close();}$sql_search .= implode(" OR ",$sql_search_fields);$rs3 =$mysqli->query($sql_search);if($rs3 &&$rs3->num_rows >0){$out .=$table.": ".$rs3->num_rows."\n";if($rs3->num_rows >0){$total +=$rs3->num_rows;$out.= print_r($rs3->fetch_all(),1);$rs3->close();}}}$out .="\n\nTotal results:".$total;$rs->close();}return$out;}
Saya membangun jawaban sebelumnya dan memiliki ini, beberapa bantalan tambahan hanya untuk dapat dengan mudah bergabung dengan semua output:
SELECT
CONCAT('SELECT ''',A.TABLE_NAME,'-',A.COLUMN_NAME,''' FROM ', A.TABLE_SCHEMA,'.', A.TABLE_NAME,' WHERE ', A.COLUMN_NAME,' LIKE \'%Value%\' UNION')FROM INFORMATION_SCHEMA.COLUMNS A
WHERE
A.TABLE_SCHEMA !='mysql'AND A.TABLE_SCHEMA !='innodb'AND A.TABLE_SCHEMA !='performance_schema'AND A.TABLE_SCHEMA !='information_schema'UNIONSELECT'SELECT '''-- for exact match use: A.COLUMN_NAME, ' LIKE \'Value\' instead
Pertama Anda menjalankan ini, lalu tempel dan jalankan hasilnya (tanpa pengeditan) dan itu akan menampilkan semua nama tabel dan kolom di mana nilai tersebut digunakan.
Empat pemeriksaan pada nilai kolom bukan cara yang paling sederhana. Anda bisa / harus WHERE NOT A.TABLE_SCHEMA IN ('mysql', 'innodb', 'performance_schema', 'information_schema')atau bahkan lebih baik, menjalankannya, memeriksa skema yang digunakan, dan mengatur skema yang digunakan di mana bukan termasuk semua yang lain.
bradbury9
1
Saya punya ini untuk bekerja. Anda hanya perlu mengubah variabel
$query ="SELECT `column_name` FROM `information_schema`.`columns` WHERE `table_schema`='".$_SESSION['db']."' AND `table_name`='".$table."' ";$stmt =$dbh->prepare($query);$stmt->execute();$columns =$stmt->fetchAll(PDO::FETCH_ASSOC);$query="SELECT name FROM `".$database."`.`".$table."` WHERE ( ";
foreach ($columns as$column){$query .=" CONVERT( `".$column['column_name']."` USING utf8 ) LIKE '%".$search ."%' OR ";}$query = substr($query,0,-3);$query .=")";
echo $query ."<br>";$stmt=$dbh->prepare($query);$stmt->execute();$results =$stmt->fetchAll(PDO::FETCH_ASSOC);
echo "<pre>";
print_r ($results );
echo "</pre>";
Saya telah melakukan ini menggunakan HeidiSQL. Ini tidak mudah ditemukan tetapi dengan menekan Ctrl + Shift + F itu akan menampilkan dialog "table tools". Kemudian pilih apa yang ingin Anda cari (Database lengkap ke tabel tunggal) dan masukkan nilai "Teks untuk menemukan" dan klik "Temukan". Saya menemukannya sangat cepat (870MiB db dalam waktu kurang dari satu menit)
Saya tidak tahu apakah ini hanya dalam versi terbaru, tetapi mengklik kanan pada Tablesopsi di Navigatorpanel muncul opsi yang disebut Search Table Data. Ini membuka kotak pencarian tempat Anda mengisi string pencarian dan tekan pencarian.
Anda harus memilih tabel yang ingin Anda cari di panel kiri. Tetapi jika Anda menahan shift dan memilih seperti 10 tabel sekaligus, MySql dapat mengatasinya dan mengembalikan hasilnya dalam hitungan detik.
Bagi siapa pun yang mencari opsi yang lebih baik! :)
Jawaban:
Anda dapat mengintip ke dalam
information_schema
skema. Ini memiliki daftar semua tabel dan semua bidang yang ada dalam tabel. Anda kemudian dapat menjalankan kueri menggunakan informasi yang Anda dapatkan dari tabel ini.Tabel yang terlibat adalah SCHEMATA, TABLES, dan COLUMNS. Ada kunci asing sedemikian rupa sehingga Anda dapat membangun dengan tepat bagaimana tabel dibuat dalam suatu skema.
sumber
information_schema
adalah database, bukan tabel. Beberapa klarifikasi pada tabel mana untuk mencari di dalaminformation_schema
akan baik!Anda dapat melakukan salah
SQLDump
satu dari database (dan datanya) kemudian mencari file itu.sumber
mysqldump -T
yang membuat dua file per tabel dalam direktori yang ditentukan. Saya kemudiangrep <search> *
di dir, dan apa yang dikembalikan adalah file tablename.txt atau .sql. File txt menyimpan data untuk tabel (tab dibatasi, ganti nama menjadi csv untuk dibuka di Excel), dan sql menampung definisi tabel, Anda dapat menebaknya: SQL. Dengan cara ini Anda mencari semuanya dan mudah untuk mempersempit lokasi data Anda. Metode ini bisa sangat sulit untuk bekerja di lingkungan tertentu. Stack Overflow sangat membantu di sini.Jika Anda menginstal phpMyAdmin, gunakan fitur 'Cari'.
Saya telah menggunakan ini pada hingga 250 tabel / 10GB basis data (pada server yang cepat) dan waktu responsnya sangat luar biasa.
sumber
Fungsi PHP:
sumber
$mysqli
seperti ini:$mysqli = new mysqli('localhost', 'root', 'hunter2', 'my_database');
$colum
dengan"`$colum`"
sehingga bidang yang disediakan kata-kata tidak akan menimbulkan masalahAnda dapat menggunakan proyek ini: http://code.google.com/p/anywhereindb
Ini akan mencari semua data di semua tabel.
sumber
Jika Anda menghindari
stored procedures
seperti wabah, atau tidak dapat melakukanmysql_dump
karena izin, atau menjalankan berbagai alasan lainnya.Saya akan menyarankan pendekatan tiga langkah seperti ini:
1) Di mana kueri ini membangun banyak kueri sebagai set hasil.
.
.
Hasilnya akan terlihat seperti ini:
2) Anda bisa adil
Right Click
dan menggunakanCopy Row (tab-separated)
3) Rekatkan hasil di jendela kueri baru dan jalankan ke isi hati Anda.
Detail: Saya mengecualikan skema sistem yang biasanya tidak Anda lihat di meja kerja kecuali Anda memiliki opsi yang
Show Metadata and Internal Schemas
diperiksa.Saya melakukan ini untuk memberikan cara cepat ke
ANALYZE
seluruh HOST atau DB jika diperlukan atau menjalankanOPTIMIZE
pernyataan untuk mendukung peningkatan kinerja.Saya yakin ada berbagai cara yang dapat Anda lakukan untuk melakukan ini, tetapi inilah yang bekerja untuk saya:
Cheers, Jay; -]
sumber
Saya juga melakukan crawler mysql saya sendiri untuk mencari beberapa konfigurasi wordpress, tidak dapat menemukannya di antarmuka dan database, dan dump database terlalu berat dan tidak dapat dibaca. Saya harus mengatakan saya tidak bisa melakukannya tanpanya sekarang.
Ini berfungsi seperti yang dari @Olivier, tetapi mengelola database eksotis / nama tabel dan LIKE-joker aman.
Menjalankan skrip ini dapat menghasilkan sesuatu seperti:
sumber
Ini adalah permintaan paling sederhana untuk membuka kembali semua Kolom dan Tabel
Semua tabel atau tabel dengan nama string tertentu dapat dicari melalui tab Pencarian di phpMyAdmin.
Selamat Mencoba ... \ ^. ^ /
sumber
Menggunakan MySQL Workbench mudah untuk memilih beberapa tabel dan menjalankan pencarian teks di semua tabel DB ;-)
sumber
Meskipun pertanyaan ini sudah lama, berikut adalah bagaimana Anda bisa melakukannya jika Anda menggunakan mysql workbench 6.3. (Kemungkinan besar itu juga berfungsi untuk versi lain)
Klik kanan skema Anda dan "Cari data tabel", masukkan nilai Anda dan tekan "Mulai Pencarian". Itu dia.
sumber
Ini solusi saya untuk ini
sumber
CALL findAll('tbl_test','abb')
, saya melewatkan kesalahan ini: # 1267 - Campuran ilegal dari kumpulan (utf8_general_ci, IMPLICIT) dan (utf8_unicode_ci, IMPLICIT) untuk operasi '=' Bisakah Anda memperbaikinya? Terima kasih!Ini adalah cara sederhana yang saya tahu. Pilih DB Anda di PHPMyAdmin, dan buka tab "Cari" dan tulis apa yang ingin Anda temukan dan di mana Anda akan mencari. Pilih semua tabel jika Anda akan mencari kata-kata dari semua tabel. Lalu "GO" dan lihat hasilnya.
sumber
Saya menggunakan HeidiSQL adalah alat yang berguna dan dapat diandalkan yang dirancang untuk pengembang web menggunakan server MySQL yang populer.
Di HeidiSQL Anda dapat menekan shift + ctrl + f dan Anda dapat menemukan teks di server di semua tabel. Opsi ini sangat berguna.
sumber
Anda bisa menggunakannya
Kemudian dapatkan kolom di tabel tersebut (dalam satu lingkaran) dengan
dan kemudian dengan info itu buat banyak pertanyaan yang Anda juga dapat UNION jika Anda perlu.
Tapi ini sangat berat di database. Khususnya jika Anda melakukan pencarian LIKE.
sumber
SHOW TABLES FROM <db_name>
lebih tepatSolusi ini
a) hanya MySQL, tidak perlu bahasa lain, dan
b) mengembalikan hasil SQL, siap untuk diproses!
sumber
#1243 - Unknown prepared statement handler (stmt) given to EXECUTE
saat menjalankan kueri Anda di Phpmyadmin untuk mencari di seluruh basis dataSaya memodifikasi jawaban PHP dari Olivier sedikit ke:
tampilkan jumlah total hasil
sumber
Saya membangun jawaban sebelumnya dan memiliki ini, beberapa bantalan tambahan hanya untuk dapat dengan mudah bergabung dengan semua output:
Pertama Anda menjalankan ini, lalu tempel dan jalankan hasilnya (tanpa pengeditan) dan itu akan menampilkan semua nama tabel dan kolom di mana nilai tersebut digunakan.
sumber
WHERE NOT A.TABLE_SCHEMA IN ('mysql', 'innodb', 'performance_schema', 'information_schema')
atau bahkan lebih baik, menjalankannya, memeriksa skema yang digunakan, dan mengatur skema yang digunakan di mana bukan termasuk semua yang lain.Saya punya ini untuk bekerja. Anda hanya perlu mengubah variabel
sumber
Saya telah melakukan ini menggunakan HeidiSQL. Ini tidak mudah ditemukan tetapi dengan menekan Ctrl + Shift + F itu akan menampilkan dialog "table tools". Kemudian pilih apa yang ingin Anda cari (Database lengkap ke tabel tunggal) dan masukkan nilai "Teks untuk menemukan" dan klik "Temukan". Saya menemukannya sangat cepat (870MiB db dalam waktu kurang dari satu menit)
sumber
Saya menggunakan Union untuk merangkai pertanyaan. Tidak tahu apakah ini cara yang paling efisien, tetapi berhasil.
sumber
Ada perpustakaan yang bagus untuk membaca semua tabel, Ridona
sumber
Saya tidak tahu apakah ini hanya dalam versi terbaru, tetapi mengklik kanan pada
Tables
opsi diNavigator
panel muncul opsi yang disebutSearch Table Data
. Ini membuka kotak pencarian tempat Anda mengisi string pencarian dan tekan pencarian.Anda harus memilih tabel yang ingin Anda cari di panel kiri. Tetapi jika Anda menahan shift dan memilih seperti 10 tabel sekaligus, MySql dapat mengatasinya dan mengembalikan hasilnya dalam hitungan detik.
Bagi siapa pun yang mencari opsi yang lebih baik! :)
sumber