Você pode espiar o information_schemaesquema. Ele tem uma lista de todas as tabelas e todos os campos que estão em uma tabela. Em seguida, você pode executar consultas usando as informações obtidas dessa tabela.
As tabelas envolvidas são ESQUEMA, TABELAS e COLUNAS. Existem chaves estrangeiras para que você possa criar exatamente como as tabelas são criadas em um esquema.
essa não é a resposta que eu queria, mas devo aceitar a verdade. : D Obrigado
RSilva 12/03/09
1
Está correto, mas a resposta de @Dan Rather também ajudou, porque o banco de dados que eu estava examinando estava configurado obscuramente e eu não conseguia descobrir qual seria o nome ou a tabela da coluna com certeza apenas olhando ...
DrCord
12
information_schemaé um banco de dados, não uma tabela. Alguns esclarecimentos sobre qual tabela pesquisar dentro information_schemaseriam bons!
CaptSaltyJack 7/08
3
É meio hilário para mim que o MySql não tenha como pesquisar em todas as tabelas. Parece uma opção bastante rudimentar #
Essa é a maneira "padrão" (de fato) de pesquisar bancos de dados inteiros. Eu gosto do mysqldump -Tque cria dois arquivos por tabela em um diretório especificado. Eu então grep <search> *no dir, e o que é retornado é o arquivo tablename.txt ou .sql. O arquivo txt mantém os dados da tabela (delimitado por tabulação, renomeie para csv para abrir no Excel) e o sql mantém a definição da tabela, você adivinhou: SQL. Dessa forma, você está pesquisando tudo e é fácil restringir onde estão seus dados. Esse método pode ser bastante difícil de trabalhar em determinados ambientes. O estouro de pilha é muito útil aqui.
Joel Mellon
Quando você tem um SQL grande, ou talvez arquivado - você pode abri-lo no MC no servidor e, em seguida,
exibir-
1
Boa sugestão! Mas, isso não vai funcionar se o arquivo de despejo db é muito grande (situação que eu estou tendo agora :))
Boban
207
Se você possui o phpMyAdmin instalado, use o recurso 'Pesquisar'.
Selecione seu DB
Certifique-se de ter um banco de dados selecionado (ou seja, não uma tabela, caso contrário, você obterá uma caixa de diálogo de pesquisa completamente diferente)
Clique na guia "Pesquisar"
Escolha o termo de pesquisa que você deseja
Escolha as tabelas para pesquisar
Eu usei isso em bancos de dados de até 250 tabelas / 10 GB (em um servidor rápido) e o tempo de resposta é incrível.
Um de nossos bancos de dados tem 92,7Gb e essa opção funcionou perfeitamente. Solução ótima
Tricky
5
Eu sempre esqueço o que todo o phpMyAdmin pode fazer. É uma ótima ferramenta!
Ville
1
Extremamente rápido e útil no meu Magento db. Encontrei o campo para os dados que eu estava procurando em alguns segundos e também todas as outras tabelas que estavam fazendo referência a ele.
mtrueblood
1
MySQL Workbench tem esse recurso também: "Banco de dados >> Pesquisa Tabela de Dados ..."
Matt Wilkie
1
Agradável! Agora, como você substituiria a string pesquisada no phpmyadmin?
Pathros
46
Função 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;}
Não funciona mais para PHP7. (mysql_connect foi descontinuado no PHP 5.5.0, removido no PHP 7.0.0)
iDev247
12
Se você está evitando stored procedurescomo uma praga, ou não consegue fazer um mysql_dumpdevido a permissões, ou se deparar com outros motivos diversos.
Eu sugeriria uma abordagem em três etapas como esta:
1) Onde esta consulta cria um monte de consultas como conjunto de resultados.
#=================# 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%';
Os resultados devem ficar assim:
2) Você pode então apenas Right Clickusar oCopy Row (tab-separated)
3) Cole os resultados em uma nova janela de consulta e execute o conteúdo do seu coração.
Detalhe: excluo os esquemas do sistema que você normalmente não vê no seu ambiente de trabalho, a menos que tenha a opção Show Metadata and Internal Schemasmarcada.
Fiz isso para fornecer uma maneira rápida de ANALYZEum HOST ou banco de dados inteiro, se necessário, ou para executar OPTIMIZEinstruções para dar suporte a melhorias de desempenho.
Tenho certeza de que existem maneiras diferentes de você fazer isso, mas eis o que funciona para mim:
-- ========================================== 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';
Testado na versão MySQL: 5.6.23
AVISO: NÃO EXECUTAR ISTO SE:
Você está preocupado em causar bloqueios de tabela (fique de olho nas conexões do cliente)
Você não tem certeza do que está fazendo.
Você está tentando irritar seu DBA. (você pode ter pessoas em sua mesa com a rapidez .)
Definitivamente, não é algo que você deseja executar em um banco de dados ativo, mas útil para determinadas tarefas de depuração. Isso falhará se o tipo de coluna não for comparado a uma sequência. Ou seja, uma coluna int.
Michael Thessel
Ótimo ponto, eu adicionei três alternativas para pesquisar por blobs, chars ou ints. Esta é apenas uma generalização e SEMPRE deve ser usada com cuidado. NUNCA na PRODUÇÃO, como você mencionou, é geralmente isso que o leva a demitir "Encontrar scripts na Internet e não entendê-los, mas ainda executá-los", mas é assim que as pessoas aprendem da maneira mais difícil.
JayRizzo
8
Também fiz meu próprio rastreador mysql para pesquisar alguma configuração do wordpress, não consegui encontrá-la na interface nem no banco de dados, e os despejos de banco de dados eram muito pesados e ilegíveis. Devo dizer que não posso ficar sem isso agora.
Ele funciona como o do @Olivier, mas gerencia nomes de bancos de dados / tabelas exóticos e é seguro para o LIKE-joker.
Eu recebo este erro: Erro fatal: Exceção não capturada 'PDOException' com a mensagem 'SQLSTATE [42000]: Erro de sintaxe ou violação de acesso: 1064 Você tem um erro na sintaxe do SQL; verifique o manual que corresponde à versão do servidor MySQL para a sintaxe correta a ser usada perto da tecla 'LIKE REPLACE (REPLACE (REPLACE (REPLACE (REPLACE (REPLACE (REPLACE (REPLACE (' 180well * ',' \\ ',' \\\\ '),'% ',' na linha 1 '
LLBBL 7/09
6
Esta é a consulta mais simples para recuperar todas as colunas e tabelas
SELECT*FROM information_schema.`COLUMNS` C WHERE TABLE_SCHEMA ='YOUR_DATABASE'
Todas as tabelas ou aquelas com string específica no nome podem ser pesquisadas na guia Pesquisar no phpMyAdmin.
Obrigado! Primeira vez que usei o ambiente de trabalho. Foi bastante intuitivo, apontou-me para a mesa de que precisava e pude localizá-la a partir daí.
Joshmiller # 25/19
6
Embora essa questão seja antiga, veja como você pode fazê-lo se estiver usando o mysql workbench 6.3. (Muito provavelmente também funciona para outras versões)
Clique com o botão direito do mouse em seu esquema e em "Pesquisar dados da tabela", insira seu valor e pressione "Iniciar pesquisa". É isso aí.
quando executo CALL findAll('tbl_test','abb'), sinto falta deste erro: # 1267 - Mistura ilegal de agrupamentos (utf8_general_ci, IMPLICIT) e (utf8_unicode_ci, IMPLICIT) para operation '=' Consegue corrigi-lo? Obrigado!
Davuz 25/05
6
Esta é a maneira simples que eu sei. Selecione seu banco de dados no PHPMyAdmin, vá para a guia "Pesquisar" e escreva o que deseja encontrar e onde procurará. Selecione todas as tabelas se você procurar as palavras de todas as tabelas. Então "GO" e veja o resultado.
+1 Parece fazer bem o trabalho e é uma ferramenta útil que salva o problema envolvido em algumas das outras respostas. Também digno de nota que ele permite que você escolha qual banco de dados (s) para pesquisar.
Steve Chambers
3
Você poderia usar
SHOW TABLES;
Em seguida, obtenha as colunas nessas tabelas (em um loop) com
SHOW COLUMNS FROMtable;
e, com essas informações, crie muitas consultas, que você também poderá unir, se precisar.
Mas isso é extremamente pesado no banco de dados. Especialmente se você estiver fazendo uma pesquisa COMO.
Esta solução
a) é apenas MySQL, nenhuma outra linguagem é necessária
eb) retorna resultados SQL, prontos para processamento!
#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;
Para esses tipos de solução, geralmente adicioná-los ao phpfiddler seria bom para que as pessoas pudessem dar uma olhada e até comentar sua solução. :)
pal4life 19/06/2014
Estou recebendo erro #1243 - Unknown prepared statement handler (stmt) given to EXECUTEquando eu executar a consulta no phpMyAdmin para pesquisar no banco de dados inteiro
Vicky Dev
@VickyDev Eu sei que já faz mais de um ano desde a sua pergunta. Desculpe. No entanto: acho que algo mais está errado no seu script, pois o stmt é declarado na linha acima de EXECUTE. Qual versão do MySQL você está usando?
Chonez 26/08
2
Modifiquei a resposta PHP de Olivier um pouco para:
imprima os resultados nos quais a string foi encontrada
omitir tabelas sem resultados
também mostra a saída se os nomes das colunas corresponderem à entrada de pesquisa
mostra o número total de resultados
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;}
Eu construí uma resposta anterior e tenho isso, algum preenchimento extra apenas para poder juntar convenientemente toda a saída:
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
Primeiro você executa isso, depois cola e executa o resultado (sem edição) e ele exibirá todos os nomes de tabelas e colunas em que o valor é usado.
Quatro verificações no valor de uma coluna não são a maneira mais simples. Você pode / deve WHERE NOT A.TABLE_SCHEMA IN ('mysql', 'innodb', 'performance_schema', 'information_schema')ou, melhor ainda, executá-lo, verificar os esquemas usados e definir o esquema usado no local, excluindo todos os outros.
bradbury9
1
Eu tenho que trabalhar. você só precisa alterar as variáveis
$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>";
Eu fiz isso usando o HeidiSQL. Não é fácil encontrar, mas pressionando Ctrl + Shift + F ele exibe a caixa de diálogo "table tools". Em seguida, selecione o que deseja pesquisar (banco de dados completo em tabela única) e digite o valor "Texto a encontrar" e clique em "Localizar". Achei surpreendentemente rápido (870MiB db em menos de um minuto)
Não sei se isso é apenas nas versões recentes, mas clicar com o botão direito do mouse na Tablesopção no Navigatorpainel exibe uma opção chamadaSearch Table Data . Isso abre uma caixa de pesquisa onde você preenche a sequência de pesquisa e pressiona a pesquisa.
Você precisa selecionar a tabela que deseja pesquisar no painel esquerdo. Mas se você mantiver a tecla shift pressionada e selecionar 10 tabelas por vez, o MySql poderá lidar com isso e retornar os resultados em segundos.
Respostas:
Você pode espiar o
information_schema
esquema. Ele tem uma lista de todas as tabelas e todos os campos que estão em uma tabela. Em seguida, você pode executar consultas usando as informações obtidas dessa tabela.As tabelas envolvidas são ESQUEMA, TABELAS e COLUNAS. Existem chaves estrangeiras para que você possa criar exatamente como as tabelas são criadas em um esquema.
fonte
information_schema
é um banco de dados, não uma tabela. Alguns esclarecimentos sobre qual tabela pesquisar dentroinformation_schema
seriam bons!Você pode fazer um
SQLDump
banco de dados (e seus dados) e pesquisar nesse arquivo.fonte
mysqldump -T
que cria dois arquivos por tabela em um diretório especificado. Eu entãogrep <search> *
no dir, e o que é retornado é o arquivo tablename.txt ou .sql. O arquivo txt mantém os dados da tabela (delimitado por tabulação, renomeie para csv para abrir no Excel) e o sql mantém a definição da tabela, você adivinhou: SQL. Dessa forma, você está pesquisando tudo e é fácil restringir onde estão seus dados. Esse método pode ser bastante difícil de trabalhar em determinados ambientes. O estouro de pilha é muito útil aqui.Se você possui o phpMyAdmin instalado, use o recurso 'Pesquisar'.
Eu usei isso em bancos de dados de até 250 tabelas / 10 GB (em um servidor rápido) e o tempo de resposta é incrível.
fonte
Função PHP:
fonte
$mysqli
assim:$mysqli = new mysqli('localhost', 'root', 'hunter2', 'my_database');
$colum
por,"`$colum`"
para que os campos que são palavras reservadas não causem problemasVocê pode usar este projeto: http://code.google.com/p/anywhereindb
Isso pesquisará todos os dados em todas as tabelas.
fonte
Se você está evitando
stored procedures
como uma praga, ou não consegue fazer ummysql_dump
devido a permissões, ou se deparar com outros motivos diversos.Eu sugeriria uma abordagem em três etapas como esta:
1) Onde esta consulta cria um monte de consultas como conjunto de resultados.
.
.
Os resultados devem ficar assim:
2) Você pode então apenas
Right Click
usar oCopy Row (tab-separated)
3) Cole os resultados em uma nova janela de consulta e execute o conteúdo do seu coração.
Detalhe: excluo os esquemas do sistema que você normalmente não vê no seu ambiente de trabalho, a menos que tenha a opção
Show Metadata and Internal Schemas
marcada.Fiz isso para fornecer uma maneira rápida de
ANALYZE
um HOST ou banco de dados inteiro, se necessário, ou para executarOPTIMIZE
instruções para dar suporte a melhorias de desempenho.Tenho certeza de que existem maneiras diferentes de você fazer isso, mas eis o que funciona para mim:
Saúde, Jay; -]
fonte
Também fiz meu próprio rastreador mysql para pesquisar alguma configuração do wordpress, não consegui encontrá-la na interface nem no banco de dados, e os despejos de banco de dados eram muito pesados e ilegíveis. Devo dizer que não posso ficar sem isso agora.
Ele funciona como o do @Olivier, mas gerencia nomes de bancos de dados / tabelas exóticos e é seguro para o LIKE-joker.
A execução desse script pode gerar algo como:
fonte
Esta é a consulta mais simples para recuperar todas as colunas e tabelas
Todas as tabelas ou aquelas com string específica no nome podem ser pesquisadas na guia Pesquisar no phpMyAdmin.
Tenha uma Consulta Agradável ... \ ^. ^ /
fonte
Usando o MySQL Workbench, é fácil selecionar várias tabelas e executar uma pesquisa por texto em todas as tabelas do banco de dados ;-)
fonte
Embora essa questão seja antiga, veja como você pode fazê-lo se estiver usando o mysql workbench 6.3. (Muito provavelmente também funciona para outras versões)
Clique com o botão direito do mouse em seu esquema e em "Pesquisar dados da tabela", insira seu valor e pressione "Iniciar pesquisa". É isso aí.
fonte
Aqui está a minha solução para isso
fonte
CALL findAll('tbl_test','abb')
, sinto falta deste erro: # 1267 - Mistura ilegal de agrupamentos (utf8_general_ci, IMPLICIT) e (utf8_unicode_ci, IMPLICIT) para operation '=' Consegue corrigi-lo? Obrigado!Esta é a maneira simples que eu sei. Selecione seu banco de dados no PHPMyAdmin, vá para a guia "Pesquisar" e escreva o que deseja encontrar e onde procurará. Selecione todas as tabelas se você procurar as palavras de todas as tabelas. Então "GO" e veja o resultado.
fonte
Eu estou usando HeidiSQL é uma ferramenta útil e confiável projetada para desenvolvedores web usando o popular servidor MySQL.
No HeidiSQL, você pode pressionar shift + ctrl + f e pode encontrar texto no servidor em todas as tabelas. Esta opção é muito útil.
fonte
Você poderia usar
Em seguida, obtenha as colunas nessas tabelas (em um loop) com
e, com essas informações, crie muitas consultas, que você também poderá unir, se precisar.
Mas isso é extremamente pesado no banco de dados. Especialmente se você estiver fazendo uma pesquisa COMO.
fonte
SHOW TABLES FROM <db_name>
é mais precisoEsta solução
a) é apenas MySQL, nenhuma outra linguagem é necessária
eb) retorna resultados SQL, prontos para processamento!
fonte
#1243 - Unknown prepared statement handler (stmt) given to EXECUTE
quando eu executar a consulta no phpMyAdmin para pesquisar no banco de dados inteiroModifiquei a resposta PHP de Olivier um pouco para:
mostra o número total de resultados
fonte
Eu construí uma resposta anterior e tenho isso, algum preenchimento extra apenas para poder juntar convenientemente toda a saída:
Primeiro você executa isso, depois cola e executa o resultado (sem edição) e ele exibirá todos os nomes de tabelas e colunas em que o valor é usado.
fonte
WHERE NOT A.TABLE_SCHEMA IN ('mysql', 'innodb', 'performance_schema', 'information_schema')
ou, melhor ainda, executá-lo, verificar os esquemas usados e definir o esquema usado no local, excluindo todos os outros.Eu tenho que trabalhar. você só precisa alterar as variáveis
fonte
Eu fiz isso usando o HeidiSQL. Não é fácil encontrar, mas pressionando Ctrl + Shift + F ele exibe a caixa de diálogo "table tools". Em seguida, selecione o que deseja pesquisar (banco de dados completo em tabela única) e digite o valor "Texto a encontrar" e clique em "Localizar". Achei surpreendentemente rápido (870MiB db em menos de um minuto)
fonte
Eu usei o Union para encadear consultas. Não sei se é a maneira mais eficiente, mas funciona.
fonte
Existe uma boa biblioteca para ler todas as tabelas, ridona
fonte
Não sei se isso é apenas nas versões recentes, mas clicar com o botão direito do mouse na
Tables
opção noNavigator
painel exibe uma opção chamadaSearch Table Data
. Isso abre uma caixa de pesquisa onde você preenche a sequência de pesquisa e pressiona a pesquisa.Você precisa selecionar a tabela que deseja pesquisar no painel esquerdo. Mas se você mantiver a tecla shift pressionada e selecionar 10 tabelas por vez, o MySql poderá lidar com isso e retornar os resultados em segundos.
Para quem procura melhores opções! :)
fonte