如何编写一个短的语法正确的查询,在运行时生成错误?

时间:2013-04-12 04:40:55

标签: mysql sql database

我想写一个查询:

  • 尽可能短
  • 语法正确到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);

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

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分: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)内部查询返回一个包含两个相同命名列的表。因此,外部查询不允许指定此列名。