错误#1064,选择列,*来自表

时间:2015-04-01 06:19:40

标签: mysql

好吧,只是调试了一些东西,我发现了一个有线错误,可能应该在某处记录,但我搜索MYSQL文档并没有找到任何东西。这是sql查询,在1064附近产生* from table错误,

Select char_length(zip), zip, *  from tbllocations 

但是下面这个可以正常工作:

Select *, char_length(zip), zip from tbllocations 

我们不能在列列表末尾使用*吗?我在MySQL 5.5.41和MySql 5.0.95上测试了这个查询。我之前没有注意到这个错误。我重写查询以避免特殊/隐藏字符。

除了按列顺序改变外,他们的查询相同吗?任何解释或资源来寻找一个。

编辑:

只需运行Select char_length(zip), zip, tbllocations.* from tbllocations,它运行正常吗?所以看起来我遇到了一些错误?或者任何合乎逻辑的东西,我都错过了?

1 个答案:

答案 0 :(得分:2)

来自MySQL docs

  
      
  • 只有一个非限定*的选择列表可用作选择所有表中所有列的简写:

  •   
  • SELECT * FROM t1 INNER JOIN t2 ... tbl_name.*可用作合格的速记来选择指定表格中的所有列:

  •   
  • SELECT t1.*, t2.* FROM t1 INNER JOIN t2 ...在选择列表中使用不合格的*与其他项可能会产生解析错误。至   避免此问题,请使用合格的tbl_name。* reference

         

    SELECT AVG(score), t1.* FROM t1 ...

  •