首頁  >  問答  >  主體

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

比如SELECT a AS b WHRER b=1;

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

PHPzPHPz2742 天前645

全部回覆(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

    select t.b from
    (

    select a as B from table

    ) t

    where t.b =xxxx

    此時的B是可以直接在where中使用的

    回覆
    0
  • 巴扎黑

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

    b是對查詢結果a取的別名where裡面一定是不存在啊

    回覆
    0
  • 取消回覆