2

1 つのクエリのみを使用して、ビューなしでテーブル名の範囲を選択する必要があります。

例:

SHOW FULL TABLES LIKE '%table%' WHERE "Table_type"<>'VIEW'

MySQL では、これらの両方の演算子を 1 つのクエリで使用することは許可されておらず、Tables_in_(mydbname)「Table_name」のような単純な列名を使用する代わりに、DB 名を含む愚かな列名を使用しています。問題は、DB 名がわからないため、次のクエリを使用できないことです。

SHOW FULL TABLES WHERE "Table_type"<>'VIEW' AND "Tables_in_????" LIKE '%table%'

次のように、名前の代わりに数字を使用すると便利です。

SHOW FULL TABLES WHERE COLUMN(1) LIKE '%table%' AND COLUMN(2) <>'VIEW' 

しかし、そのような機能はありません。

このテーブルへのアクセスはホスティング プロバイダーによって制限される可能性があり (または私が間違っているのでしょうか?)、私のアプリケーションは広範囲に配布されるため、INFORMATION_SCHEMA を使用できません。

あなたは私に何をアドバイスしますか?

4

1 に答える 1

4

にクエリを実行します。INFORMATION_SCHEMA特にTABLESCOLUMNSテーブルは興味深いものです。

例:

SELECT *
  FROM INFORMATION_SCHEMA.TABLES t
  JOIN INFORMATION_SCHEMA.COLUMNS c
    ON t.TABLE_CATALOG = c.TABLE_CATALOG
   AND t.TABLE_SCHEMA = c.TABLE_SCHEMA
   AND t.TABLE_NAME = c.TABLE_NAME
 WHERE [some field] LIKE '%some_value%'
   AND ...
于 2012-05-28T08:38:29.830 に答える