Dette er en noget kompliceret ting at gøre. Og du kan virkelig ikke gøre det i ét trin. Jeg giver dig noget at starte med, og du bliver nødt til at tage det derfra:
select CONCAT("SELECT * FROM ", TABLE_NAME, " WHERE user_id=1;") FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME="user_id";
Nu vil dette producere output som dette:
+--------------------------------------------------------------------+
| CONCAT("SELECT * FROM ", TABLE_NAME, " WHERE user_id=1;") |
+--------------------------------------------------------------------+
| SELECT * FROM table0 WHERE user_id=1; |
| SELECT * FROM table1 WHERE user_id=1; |
Nu vil du vende om og udføre alle disse kommandoer... så gør det sådan her:
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";
Det vil give dig en tekstfil fuld af alle de kommandoer, du leder efter.
Opdatering---
Jeg gik glip af "For enhver kolonnebit.."
select CONCAT("SELECT * FROM ", TABLE_NAME, " WHERE ", COLUMN_NAME, "='WHATEVER';") FROM INFORMATION_SCHEMA.COLUMNS WHERE COLLATION_NAME IS NOT NULL INTO OUTFILE 'somepath';
Her bruger vi det faktum, at du sagde, at du leder efter en streng, og at alle strengtypefelter har et collation_name. Erstat HVAD som helst med det, du leder efter.