4

是否有一种简单易行的方法来创建具有指定列但零行的结果表?在集合论中,这称为空集,但由于关系数据库使用多维集,因此该术语并不完美。我已经尝试了这两个查询,但都提供了一行而不是零行:

  • 选择''作为ID;
  • 选择空的 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 回答