如果 MySQL 遇到相同的列名和别名,是否总是优先使用其中一个?例如
select NODE1 as `NODE2`, NODE2 as `NODE1` where `NODE2`=?
上述查询是否总是将NODE1列(标签NODE2)与占位符匹配?换句话说,标签总是优先吗?
如果是这样,这是否适用于所有 SQL 数据库?
您不能在WHERE
子句中使用别名,因此列名在这里很重要。
可以在查询选择列表中使用别名来为列指定不同的名称。您可以在 GROUP BY、ORDER BY 或 HAVING 子句中使用别名来引用列:
和
标准 SQL 不允许在 WHERE 子句中引用列别名。 施加此限制是因为在评估 WHERE 子句时,可能尚未确定列值。
两个引用都来自C.5.5.4。列别名问题