phpMyAdmin
 sql >> Base de Dados >  >> Database Tools >> phpMyAdmin

Consulta MySQL para pesquisar um registro em banco de dados completo


Isso é uma coisa um tanto complicada de se fazer. E você realmente não pode fazer isso em uma etapa. Vou te dar algo para começar, e você terá que começar a partir daí:
select CONCAT("SELECT * FROM ", TABLE_NAME, " WHERE user_id=1;") FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME="user_id";

Agora, isso produzirá uma saída como esta:
+--------------------------------------------------------------------+
| CONCAT("SELECT * FROM ", TABLE_NAME, " WHERE user_id=1;")          |
+--------------------------------------------------------------------+
| SELECT * FROM table0 WHERE user_id=1;                              |
| SELECT * FROM table1 WHERE user_id=1;                              |

Agora, você quer dar a volta e executar todos esses comandos... então faça assim:
select CONCAT("SELECT * FROM ", TABLE_NAME, " WHERE user_id=1;") FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME="user_id" INTO OUTFILE "some_file_path_and_name";

Isso lhe dará um arquivo de texto cheio de todos os comandos que você está procurando.

Atualizar---

Eu perdi o "Para qualquer bit de coluna .."
select CONCAT("SELECT * FROM ", TABLE_NAME, " WHERE ", COLUMN_NAME, "='WHATEVER';") FROM INFORMATION_SCHEMA.COLUMNS WHERE COLLATION_NAME IS NOT NULL INTO OUTFILE 'somepath';

Aqui, estamos usando o fato de que você disse que está procurando por uma string e todos os campos do tipo string têm um collation_name. Substitua O QUE QUER com o que você está procurando.