在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