4

指定された列で行がゼロの結果テーブルを作成する簡単で簡単な方法はありますか? 集合論ではこれを空集合と呼びますが、リレーショナル データベースでは多次元集合を使用するため、この用語は完全には当てはまりません。私はこれら 2 つのクエリを試しましたが、どちらも 0 行ではなく、正確に 1 行を提供します。

  • ID として '' を選択します。
  • null AS ID を選択します。

しかし、私が欲しいのは、このクエリと同じ結果です:

  • SELECT ID FROM sometable WHERE false;

テーブルを使用したくないため、より洗練された方法を探しているため、クエリはデータベーススキームから独立しています。また、一般的なクエリは少し高速になる可能性があります (そのようなクエリでは問題になりません)。

4

3 に答える 3

4
SELECT "ID" LIMIT 0;

実際のテーブルなし。

ほとんどの (My)SQL クライアントは単に「空のセット」を表示することに注意してください。ただし、実際には必要なことを行います。

create table test.test_table 
select "ID" limit 0;

show create table test.test_table\G

Table: test_table
Create Table: CREATE TABLE `test_table` (
  `ID` varchar(2) character set latin1 NOT NULL default ''
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin
于 2012-03-09T14:22:41.403 に答える
1
SELECT * FROM (SELECT NULL AS ID) AS x WHERE 1 = 0
于 2012-03-09T14:19:44.600 に答える
0

DUAL擬似テーブルを使用できます。

SELECT whatever FROM DUAL WHERE 1 = 0

ドキュメントを確認してください(DUAL セクションを探してください)。

于 2012-03-09T14:23:04.300 に答える