2016-10-07 5 views
0

これが私の最初の質問です。私が正しく言及していないかどうか教えてください。EXPLAINクエリ結果から特定の部品を選択する方法は?

私がしようとしているのは、EXPLAINを使用していくつかのMySQLクエリストアに関する情報をビューとして収集することです。具体的には、クエリがデータを選択するテーブルのリストを取得したいと考えています。 私は成功せず、以下のクエリを試してみました:

SELECT v.TABLE_NAME, EXPLAIN v.VIEW_DEFINITION FROM information_schema.views as v 

だから、本当の問題は、それを行うの正しい方法は何であるのか?

+0

だから、あなたがしようとしています'EXPLAIN 'ではなく、 'information_schema' DBからすべてのビューを選択しましたか? 'EXPLAIN'はMySQLが使用するクエリプランを返します。そのため、そのクエリで使用されるテーブルが表示されます。 – Xenos

+0

はい、すべてのビューでEXPLAINを実行し、各クエリの参照先テーブルのリストを取得することが考えられます。 –

+0

'PROCEDURE'(bc' EXPLAIN'はクエリ全体のキーワードであり、クエリのデータではないキーワード)の助けを借りずに、1つのクエリでこれを行うことはできません。 – Xenos

答えて

0

Explainは従来の結果セットを返しません。したがって、クエリでそれに参加することはできません。 information_schemaで追加のクエリを実行することで、アプリケーションで結果を取得し、探している追加情報を取得する必要があります。

自体の説明はまた、基本となるテーブル名を返すので、あなただけのテーブルの名前を探している場合は、自分自身を説明し、あなたがそれを提供します:

explain select * from yourview 
+0

はい、私は単純なコード私はそれをただ1つのmysqlクエリに入れようとしています。 –

+0

まあ、私はあなたがそれをすることができるとは思わない。 – Shadow

関連する問題