1

如果 MySQL 遇到相同的列名和别名,是否总是优先使用其中一个?例如

select NODE1 as `NODE2`, NODE2 as `NODE1` where `NODE2`=?

上述查询是否总是将NODE1列(标签NODE2)与占位符匹配?换句话说,标签总是优先吗?

如果是这样,这是否适用于所有 SQL 数据库?

4

1 回答 1

6

您不能在WHERE子句中使用别名,因此列名在这里很重要。

可以在查询选择列表中使用别名来为列指定不同的名称。您可以在 GROUP BY、ORDER BY 或 HAVING 子句中使用别名来引用列:

标准 SQL 不允许在 WHERE 子句中引用列别名。 施加此限制是因为在评估 WHERE 子句时,可能尚未确定列值。

两个引用都来自C.5.5.4。列别名问题

于 2013-04-18T20:35:36.980 回答