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

Here are some short queries that are all "correct" but will fail

SELECT *

SELECT 1e333

SELECT i FROM(SELECT 1i,1i)

The verbose versions are

SELECT * FROM DUAL

SELECT 1e333 FROM DUAL

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

They fail for different reasons:

1) DUAL does not have any columns.

2) 1e333 does not fit into a float.

3) The inner query returns a table with two identical named columns. Thus specifying this column name is not admissible for the outer query.

于 2013-04-12T04:44:20.277 に答える