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 に答える