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

  • 选择''为id;
  • 选择null作为id;

    但是我想要的结果与此查询相同:

    • 从Wordable中选择ID,其中false;

      我正在寻找更优雅的方式,因为我不想涉及一个表,所以查询独立于任何数据库方案。此外,通用查询可能有点速度更快(不是这样的查询很重要)。

有帮助吗?

解决方案

SELECT "ID" LIMIT 0;
.

没有任何真正的表。

请注意,大多数(我的)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
.

其他提示

SELECT * FROM (SELECT NULL AS ID) AS x WHERE 1 = 0
.

您可以使用DUAL pseudo-table。

SELECT whatever FROM DUAL WHERE 1 = 0
.

检查文档(寻找双部分)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top