MYSQL中如何把SELECT A AS B中的B作为WHERE筛选条件
PHPz
PHPz 2017-04-17 15:36:18
0
4
671

比如SELECT a AS b WHRER b=1;

我这样使用会报错,说b不存在。

PHPz
PHPz

学习是最好的投资!

全員に返信(4)
迷茫

mysql の最後で SQL ステートメントを実行する場合、where 以降のフィルター条件が最初に来て、as B のエイリアスが後に来ます。
したがって、マシンが where の後にエイリアスを認識しても、それを認識しないため、B が存在しないと報告されます。

フィルター条件として B を使用する必要がある場合:
解決策: 外側に別のレイヤーをネストします。
select * from
(
select A as B from table
) t
where t.B = XXX -- 任意のフィルター条件

ネストがない場合、フィルタ条件として A のみを使用できます

いいねを押す +0
大家讲道理

もちろん、それは存在しません。この b は、a
select a AS b FROM table where a = 1

のクエリ結果を持つエイリアス専用です。
いいねを押す +0
巴扎黑

から t.b を選択してください
(

テーブルから A を B として選択

) t

ここで、t.b =xxxx

この時点の B は where で直接使用できます

いいねを押す +0
巴扎黑

b はクエリ結果 a のエイリアスであり、where

には絶対に存在しません。
いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート