2012-01-09 4 views
1

私が求めるすべてのテーブルが存在する場合、結果を返すクエリを記述する必要があります。私はこれが存在することを知っています:複数テーブルの存在の問い合わせ

show tables like 'user' 

複数のテーブルでそれをどのように拡張するか分かりません。これは無効なコードなのですが、何かのようなものです。

show tables like 'user' AND show tables like 'site' AND ... 

ありがとうございました!

+0

- http://dev.mysql.com/doc/refman/5.0/en/tables-table.html – dash

答えて

3
select * 
from information_schema.tables 
where table_name in ('tb1','tb2','tb3') 
and table_schema = 'your_db' 
having count(table_name) = 3 

うーん、私はそのクエリに問題があることに気づきました。すべてのテーブルが存在する場合は、1つのレコードだけを返します。これは、よりよい解決策になる

select group_concat(table_name order by table_name) as table_list 
from information_schema.tables 
where table_name in ('tb1','tb2','tb3') 
and table_schema = 'your_db' 
having count(*) = 3 
オブジェクトINFORMATION_SCHEMA.TABLESを使用することができます
+0

+1です。アバターのように;-) – dash

+0

スタックオーバーフローは魔法の場所です。この答えは速かった!ありがとうございました!! – elightbo

+0

@ダッシュ。ありがとうございました。 P.S.エリック・ルールズ、笑!!! ;) –

1

私はこれは、MySQLで動作します知っている...(単なる例)

SHOW TABLES WHERE Tables_in_<database-name> IN ([<table-names-comma-separated>]) 

例:

SHOW TABLES WHERE Tables_in_YourDB IN ('users', 'sites') 
+0

+ 1、私はdidnの参照SHOW TABLESコマンドについて知りません - ありがとう! – dash

+0

私に正しい方法を送っていただきありがとうございます。完全な例は – elightbo

関連する問題