在MySQL中,select *,1 from t
似乎是有效的,但select 1,* from t
不是。爲什麼星號必須先出現?
- 這是爲什麼?
- 有沒有這方面的官方文檔?我找不到任何說後者無效的東西,我得到的錯誤信息也沒有具體說明它。
在MySQL中,select *,1 from t
似乎是有效的,但select 1,* from t
不是。爲什麼星號必須先出現?
From the MySQL docs,你被告知可以做什麼用的不合格*
:
只由一個單一的不合格
*
選擇列表可用於簡略到所有表中選擇所有列:
SELECT * FROM t1 INNER JOIN t2 ...
你要找的相關文件是下面兩個要點:
在選擇列表中的其他項目可能會產生語法錯誤,使用不合格
*
的。爲了避免這個問題,使用合格tbl_name.*
參考
不幸的是,爲什麼沒有在文檔說明,並可能會採取一些挖掘。
我想不出任何真正的原因,除了它使生活稍微容易一些。 MS SQL Server沒有這樣的限制(例如,'select 1,*,2,*,3 from table'工作正常)。 – 2014-10-28 19:46:33