好吧,只是调试了一些东西,我发现了一个有线错误,可能应该在某处记录,但我搜索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
,它运行正常吗?所以看起来我遇到了一些错误?或者任何合乎逻辑的东西,我都错过了?
答案 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 ...