ホームページ  >  に質問  >  本文

MYSQL中如何把SELECT A AS B中的B作为WHERE筛选条件

比如SELECT a AS b WHRER b=1;

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

PHPzPHPz2742日前635

全員に返信(4)返信します

  • 迷茫

    迷茫2017-04-17 15:38:18

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

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

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

    返事
    0
  • 大家讲道理

    大家讲道理2017-04-17 15:38:18

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

    のクエリ結果を持つエイリアス専用です。

    返事
    0
  • 巴扎黑

    巴扎黑2017-04-17 15:38:18

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

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

    ) t

    ここで、t.b =xxxx

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

    返事
    0
  • 巴扎黑

    巴扎黑2017-04-17 15:38:18

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

    には絶対に存在しません。

    返事
    0
  • キャンセル返事