Mysql 带前导空格的列别名导致错误:“未知列”栏。“字段列表”中的COL1'

Mysql 带前导空格的列别名导致错误:“未知列”栏。“字段列表”中的COL1',mysql,sql,whitespace,alias,Mysql,Sql,Whitespace,Alias,我正在开发一个实用程序,它公开来自具有机器生成的表/列名的仓库的数据。允许用户为表/列指定新名称,以使结果更有意义。别名可以是任何有效的MySQL标识符名称,但我发现包含前导空格的列名存在问题。现在我知道这将是一个愚蠢的列名,但我不希望仅仅因为我懒惰,找不到正确的方法来做某事而对用户施加任何任意的限制 这个简单的SQL语句再现了这个问题: SELECT ` COL1` FROM (SELECT 1 AS ` COL1`) BAR 错误代码:1054。“字段列表”中的未知列“COL1” 我错过什

我正在开发一个实用程序,它公开来自具有机器生成的表/列名的仓库的数据。允许用户为表/列指定新名称,以使结果更有意义。别名可以是任何有效的MySQL标识符名称,但我发现包含前导空格的列名存在问题。现在我知道这将是一个愚蠢的列名,但我不希望仅仅因为我懒惰,找不到正确的方法来做某事而对用户施加任何任意的限制

这个简单的SQL语句再现了这个问题:

SELECT ` COL1` FROM (SELECT 1 AS ` COL1`) BAR
错误代码:1054。“字段列表”中的未知列“COL1”


我错过什么了吗?我正在使用MySQL 5.6.11。

您能检索表结构吗?想要查看表栏的实际列名。
运行上面的查询时,MSSQL将删除列名中的所有空格。

BAR不是表,而是子查询的别名。此查询不涉及实际的表,可以重新编写为:SELECT 1中的SELECT“COL1”和DUAL as BARNote中的“COL1”。请注意,此查询是成功的,尽管它不应该在外部SELECT中没有前导空格:SELECT 1中的SELECT COL1作为COL1栏