4

クエリ:

Explain SELECT * FROM TABLE WHERE 1 = 2

指定されたテーブルのフィールド名を表示します。誰でもこの構文を説明できますか? 前もって感謝します。

4

7 に答える 7

5

1 = 2は falseであるため、結果は返されません。(そのWHERE句に一致するレコードがないため、テーブルの見出しだけを取得し、レコードは取得しません。)

于 2012-10-22T17:03:43.350 に答える
3

1 は 2 と等しくないため、クエリの結果は空になります。つまり、考えられる出力に行がない場合、式 1 = 2 は真になります。したがって、取得できるのは列ヘッダー (フィールド名) だけで、実際のデータ行はありません...

于 2012-10-22T17:04:56.253 に答える
3

EXPLAIN は MySQL ユーティリティ ステートメントです。

このEXPLAINステートメントは、MySQL がステートメントを実行する方法に関する情報を取得する方法として使用できます。

ステートメントの前SELECTにキーワード を付けるとEXPLAIN、MySQL はクエリ実行計画に関するオプティマイザからの情報を表示します。つまり、MySQL は、テーブルがどのように結合され、どの順序で結合されるかに関する情報を含め、ステートメントをどのように処理するかを説明します。

つまり、EXPLAIN ステートメントは、MySQL がどのようにクエリを実行しているかを調査するために使用されます。

ステートメントは次の出力を生成します-

id  select_type     table   type    possible_keys   key     key_len     ref     rows    Extra
1   SIMPLE  NULL    NULL    NULL    NULL    NULL    NULL    NULL    Impossible WHERE

列の下Extraにあるように、テキストが返されてImpossible WHEREいます。これは、MySQL がゼロ行になることを識別したことを意味します。

同様に、他の列は、使用されている INDEXES やその他の有用な情報を識別するのに役立ちます。

詳細については、EXPLAIN 構文を参照してください。

于 2012-10-22T17:10:45.123 に答える
2

where条件がfalseであるため、クエリは結果を生成しません... 1、2の参照が列ヘッダーへの参照であり、結果を生成する場合、1 = 2の論理条件はfalseになります。

于 2012-10-22T17:58:10.183 に答える
1

explainクエリの実行計画を確認するために使用されます。クエリの先頭に追加すると、選択などに使用されるインデックスを確認できます。

したがって、クエリは結果を表示しません。explainステートメントから 削除して実行するselect ...と、クエリの結果が得られます。あなたの場合、それ1=2は決して結果ではありませんtrue

説明を参照

于 2012-10-22T17:05:54.457 に答える
0

空のセットを返しています (列名とデータを列に射影しますが、where 句はすべてをフィルター処理するため、列名のみが表示されます)。

数文字少なくても同じことができます。

select top 0 * from TABLE
于 2012-10-22T17:09:14.703 に答える
-3

SELECT *(すべてのテーブル) FROM TABLE(ここでのテーブル名はテーブルです) WHERE 1(テーブルの名前 1) (等しい) = 2

たとえば、1 という名前のテーブルが 2 に等しいテーブルのテーブルからすべてのテーブルを表示します。

乾杯。、

于 2012-10-22T17:05:05.927 に答える