Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
MySQL が同一のカラム名とエイリアス名を検出した場合、どちらか一方が常に優先されますか? 例えば
select NODE1 as `NODE2`, NODE2 as `NODE1` where `NODE2`=?
上記のクエリは、列NODE1 (ラベルNODE2) とプレースホルダーを常に一致させますか? つまり、ラベルは常に優先されますか?
もしそうなら、これはすべての SQL データベースに当てはまりますか?
WHERE句ではエイリアスを使用できないため、ここでは列名が重要になります。
WHERE
エイリアスをクエリ選択リストで使用して、列に別の名前を付けることができます。GROUP BY、ORDER BY、または HAVING 句でエイリアスを使用して、列を参照できます。
と
標準 SQL では、WHERE 句での列エイリアスへの参照は許可されていません。 この制限が課されるのは、WHERE 句が評価されるときに、列の値がまだ決定されていない可能性があるためです。
どちらもC.5.5.4 からの引用です。列の別名に関する問題