phpMyAdmin
 sql >> Database >  >> Database Tools >> phpMyAdmin

Query MySQL per cercare un record nel database completo

Questa è una cosa un po' complicata da fare. E davvero non puoi farlo in un solo passaggio. Ti darò qualcosa per iniziare e dovrai prenderlo da lì:

select CONCAT("SELECT * FROM ", TABLE_NAME, " WHERE user_id=1;") FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME="user_id";

Ora questo produrrà un output come questo:

+--------------------------------------------------------------------+
| CONCAT("SELECT * FROM ", TABLE_NAME, " WHERE user_id=1;")          |
+--------------------------------------------------------------------+
| SELECT * FROM table0 WHERE user_id=1;                              |
| SELECT * FROM table1 WHERE user_id=1;                              |

Ora, vuoi voltarti ed eseguire tutti quei comandi... quindi fallo in questo modo:

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";

Questo ti darà un file di testo completo di tutti i comandi che stai cercando.

Aggiorna---

Ho perso il "Per qualsiasi bit di colonna.."

select CONCAT("SELECT * FROM ", TABLE_NAME, " WHERE ", COLUMN_NAME, "='WHATEVER';") FROM INFORMATION_SCHEMA.COLUMNS WHERE COLLATION_NAME IS NOT NULL INTO OUTFILE 'somepath';

Qui, stiamo usando il fatto che hai detto che stai cercando una stringa e tutti i campi del tipo di stringa hanno un collation_name. Sostituisci QUALUNQUE con quello che stai cercando.