2

我想写一个查询:

  • 尽可能短
  • 对 MySQL 服务器语法正确
  • 使服务器在执行时返回错误

我目前的解决方案是:

CREATE TABLE FOO (i INT);
INSERT INTO FOO VALUES (1);
INSERT INTO FOO VALUES (2);
SELECT 1 FROM FOO WHERE 1 = (SELECT i FROM FOO);

但是我不喜欢它——它太长了。

4

2 回答 2

2
CREATE TABLE FOO (i INT);
CREATE TABLE FOO (i INT);

它不会接受创建表,因为它在第一个语句之后已经存在。

于 2013-04-12T05:00:47.097 回答
1

以下是一些“正确”但会失败的简短查询

SELECT *

SELECT 1e333

SELECT i FROM(SELECT 1i,1i)

详细版本是

SELECT * FROM DUAL

SELECT 1e333 FROM DUAL

SELECT i FROM (SELECT 1 as i, 1 as i FROM DUAL)

他们失败的原因不同:

1) DUAL 没有任何列。

2) 1e333 不适合浮点数。

3) 内部查询返回具有两个相同命名列的表。因此,外部查询不允许指定此列名。

于 2013-04-12T04:44:20.277 回答