どもです。
テーブルがたくさんあるけど、使われていないテーブルもたくさんあるDBで、使われている=レコードが存在するテーブルのみ抽出したかった。
参考:
[Qiita]MySQLで全テーブルのレコード数を一覧表示する
これWHEREに追記したらレコードが存在するテーブルだけ抽出できそうですね。
SELECT table_name, table_rows FROM INFORMATION_SCHEMA.TABLES WHERE table_schema = 'DB名' AND table_rows > 0;
これでOKでした。
どうやらINFORMATION_SCHEMAテーブルというところにアクセスすれば、DBの色々な情報が見られるようですね。
○追記
mysql4.1とかいうド旧いDBでこれをやろうとしたら、
SELECT command denied to user '****'@'***.**.**.***' for table 'TABLES
というエラーを返されました。
権限が無いのかな?と思ったら、そもそもド旧すぎてINFORMATION_SCHEMAが存在してないとのこと。
そこで
SHOW TABLE STATUS FROM DB名
とすると、Rows列にレコード数が出るので、これでなんとか目的が達成できます。
ただし、絞り込みができないのと、InnoDBだと正確なレコード数を返してくれない可能性があるらしいので、そこんとこは注意。
いや、INFORMATION_SCHEMA未搭載のMySQLバージョンでMyISAMじゃなくてInnoDB使ってるとか、そんなアンバランスなDBはさすがに存在しないと思うけど…