このページは機械翻訳したものです。
TABLE は、MySQL 8.0.19 で導入された DML ステートメントで、指定されたテーブルの行とカラムを返します。
TABLE table_name [ORDER BY column_name] [LIMIT number [OFFSET number]]
TABLE ステートメントは、いくつかの方法で SELECT のように動作します。 t という名前のテーブルが存在する場合、次の 2 つのステートメントによって同一の出力が生成されます:
TABLE t;
SELECT * FROM t;
ORDER BY 句および LIMIT 句をそれぞれ使用して、TABLE によって生成される行数を順序付けおよび制限できます。 これらの関数は、次に示すように、SELECT で使用する場合と同じ句 (LIMIT でのオプションの OFFSET 句を含む) と同じように機能します:
mysql> TABLE t;
+----+----+
| a | b |
+----+----+
| 1 | 2 |
| 6 | 7 |
| 9 | 5 |
| 10 | -4 |
| 11 | -1 |
| 13 | 3 |
| 14 | 6 |
+----+----+
7 rows in set (0.00 sec)
mysql> TABLE t ORDER BY b;
+----+----+
| a | b |
+----+----+
| 10 | -4 |
| 11 | -1 |
| 1 | 2 |
| 13 | 3 |
| 9 | 5 |
| 14 | 6 |
| 6 | 7 |
+----+----+
7 rows in set (0.00 sec)
mysql> TABLE t LIMIT 3;
+---+---+
| a | b |
+---+---+
| 1 | 2 |
| 6 | 7 |
| 9 | 5 |
+---+---+
3 rows in set (0.00 sec)
mysql> TABLE t ORDER BY b LIMIT 3;
+----+----+
| a | b |
+----+----+
| 10 | -4 |
| 11 | -1 |
| 1 | 2 |
+----+----+
3 rows in set (0.00 sec)
mysql> TABLE t ORDER BY b LIMIT 3 OFFSET 2;
+----+----+
| a | b |
+----+----+
| 1 | 2 |
| 13 | 3 |
| 9 | 5 |
+----+----+
3 rows in set (0.00 sec)
TABLE は、主に次の点で SELECT と異なります:
TABLEでは、常にテーブルのすべてのカラムが表示されます。TABLEでは、行の任意のフィルタリングは許可されません。つまり、TABLEではWHERE句はサポートされません。
返されるテーブルのカラムを制限するには、ORDER BY および LIMIT(あるいはその両方) を使用して達成できる以上の行をフィルタリングし、SELECT を使用します。
TABLE は、一時テーブルとともに使用できます。
TABLE は、SELECT のかわりに、ここにリストされているものを含め、他の多くの構成要素で使用することもできます:
-
次に示すように、
UNIONを使用します:mysql> TABLE t1; +---+----+ | a | b | +---+----+ | 2 | 10 | | 5 | 3 | | 7 | 8 | +---+----+ 3 rows in set (0.00 sec) mysql> TABLE t2; +---+---+ | a | b | +---+---+ | 1 | 2 | | 3 | 4 | | 6 | 7 | +---+---+ 3 rows in set (0.00 sec) mysql> TABLE t1 UNION TABLE t2; +---+----+ | a | b | +---+----+ | 2 | 10 | | 5 | 3 | | 7 | 8 | | 1 | 2 | | 3 | 4 | | 6 | 7 | +---+----+ 6 rows in set (0.00 sec)ここで示した
UNIONは、次のステートメントと同等です:mysql> SELECT * FROM t1 UNION SELECT * FROM t2; +---+----+ | a | b | +---+----+ | 2 | 10 | | 5 | 3 | | 7 | 8 | | 1 | 2 | | 3 | 4 | | 6 | 7 | +---+----+ 6 rows in set (0.00 sec)TABLEは、SELECTステートメントまたはVALUESステートメント (あるいはその両方) と組み合せて使用することもできます。 セクション13.2.10.3「UNION 句」を参照してください。 INTOを使用してユーザー変数を移入し、INTO OUTFILEまたはINTO DUMPFILEを使用してテーブルデータをファイルに書き込みます。 詳細および例は、セクション13.2.10.1「SELECT ... INTO ステートメント」 を参照してください。-
多くの場合、サブクエリーを使用できます。
aという名前のカラムを持つ任意のテーブルt1と、単一のカラムを持つ別のテーブルt2がある場合、次のようなステートメントが可能です:SELECT * FROM t1 WHERE a IN (TABLE t2);テーブル
tsの単一カラムの名前がxであると仮定すると、前述のステートメントは次に示す各ステートメントと同等です (いずれの場合もまったく同じ結果が生成されます):SELECT * FROM t1 WHERE a IN (SELECT x FROM t2); SELECT * FROM t1 WHERE a IN (SELECT * FROM t2);詳しくはセクション13.2.11「サブクエリー」,をご覧ください。
INSERTおよびREPLACEステートメントを使用します。それ以外の場合は、SELECT *を使用します。 詳細および例については、セクション13.2.6.1「INSERT ... SELECT ステートメント」を参照してください。TABLEは、多くの場合、CREATE TABLE ... SELECTまたはCREATE VIEW ... SELECTのSELECTのかわりに使用することもできます。 詳細および例については、これらのステートメントの説明を参照してください。