これはやや複雑なことです。そして、あなたは本当にそれをワンステップで行うことはできません。私はあなたに最初に何かを与えるでしょう、そしてあなたはそこからそれを取る必要があります:
select CONCAT("SELECT * FROM ", TABLE_NAME, " WHERE user_id=1;") FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME="user_id";
これで、次のような出力が生成されます:
+--------------------------------------------------------------------+
| CONCAT("SELECT * FROM ", TABLE_NAME, " WHERE user_id=1;") |
+--------------------------------------------------------------------+
| SELECT * FROM table0 WHERE user_id=1; |
| SELECT * FROM table1 WHERE user_id=1; |
今、あなたは振り返ってそれらのコマンドのすべてを実行したいので...こうしてください:
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";
これにより、探しているすべてのコマンドが記載されたテキストファイルが作成されます。
更新---
「任意の列ビットについて」を見逃しました。
select CONCAT("SELECT * FROM ", TABLE_NAME, " WHERE ", COLUMN_NAME, "='WHATEVER';") FROM INFORMATION_SCHEMA.COLUMNS WHERE COLLATION_NAME IS NOT NULL INTO OUTFILE 'somepath';
ここでは、文字列を探していると言ったという事実を使用しており、すべての文字列型フィールドにcollation_nameがあります。何でも探しているものに置き換えてください。