【MySQL】行も列も選択せずに空の結果セットを返す方法
MySQLでテーブルから行も列も一切表示したくない場合(空の結果セットを取得したい場合)は、SELECT NULLとFALSEを組み合わせて使用します。まずは基本の構文を見てみましょう。
select null from yourTableName where false;
サンプルテーブルの作成
実際に動作を確認するため、最初にテーブルを作成します。
mysql> create table DemoTable1367
-> (
-> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> FirstName varchar(20)
-> );
Query OK, 0 rows affected (0.55 sec)
レコードの挿入
INSERT文を使って、いくつかのレコードを追加しましょう。
mysql> insert into DemoTable1367(FirstName) values('Chris');
Query OK, 1 row affected (0.20 sec)
mysql> insert into DemoTable1367(FirstName) values('David');
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable1367(FirstName) values('Bob');
Query OK, 1 row affected (0.10 sec)
登録済みレコードの確認
SELECT文ですべてのレコードを表示してみます。
mysql> select * from DemoTable1367;
実行すると、次のような出力が得られます。
+----+-----------+ | Id | FirstName | +----+-----------+ | 1 | Chris | | 2 | David | | 3 | Bob | +----+-----------+ 3 rows in set (0.00 sec)
行も列も選択しないクエリの実行
それでは本題のクエリです。select nullに対してwhere falseを指定すると、WHERE句の条件が常に偽になるため、どの行も結果として返されません。
mysql> select null from DemoTable1367 where false;
実行結果は次のとおりです。行も列も何も選択されていないため、「Empty set」が表示されます。
Empty set (0.00 sec)
仕組みのポイント
where falseを指定すると、WHERE句の条件がすべての行において偽と評価されるため、結果セットには1行も含まれません。- SELECT句に
nullを指定しているため、仮に行が該当した場合でも値を持たない列だけが対象となります。 - このテクニックは、実際のデータを取得することなくクエリの構文やテーブルへの接続を確認したい場合などに活用できます。
-
MySQLでテーブルのすべてのカラム(列)を一覧表示する方法
MySQLでテーブルのすべてのカラムを一覧表示するには? テーブル内のすべてのカラム(列)を確認したい場合は、SHOWコマンドを使うのが最も簡単な方法です。ここでは、実際にテーブルを作成しながら、カラムの一覧表示手順を詳しく解説します。 1. サンプルテーブルの作成 まず、動作確認用として以下のようなテーブルを作成しましょう。 mysql> create table ColumnsList -> ( -> id int, -> Firstname varchar(200), -> LastName varchar(100), -&
-
MySQLでテーブルの最後の10件のレコードを取得する方法
MySQLでテーブルの末尾にある10行(最新の10件)を取得したい場合は、SELECT文とLIMIT句を組み合わせたサブクエリを利用します。この記事では、実際にテーブルを作成し、データを挿入しながら、最後の10件を取得するクエリの手順を具体的に解説します。 1. サンプルテーブルの作成 まず、動作確認用のテーブルを作成します。 mysql> create table Last10RecordsDemo -> ( -> id int, -> name varchar(100) -> ); Query OK, 0 rows affected