2016-04-01 7 views
0

行から異なる値を追加するSELECTをmaxguestsフィールドに追加しました。複数の列から値を追加し、where句でそれを比較します

私が管理しないのは、その仮想値をWHERE節で再利用することです。

私のクエリは

SELECT 
    id, 
    single_beds + single_bed_sofas + double_beds * 2 + double_bed_sofas * 2 AS maxguests 
FROM items 

であると予想されるので、これは、良い作品。

今私はWHERE maxguests > 5を追加したいと思いますが、列が不明であるというエラーが表示されます。

エラーコード:1054不明な列「maxguests」

足りないmaxguestsにその合計をエイリアシングは「where句」内には、クエリでそれを使用できるようにするには?

+1

MySQLでは、group by、order by、およびhaving句でのみエイリアス化されたカラム名を使用できます。 – Gremash

+0

@Gremashありがとうございます。それは知らなかった。 – Rikard

答えて

1

あなたが例えば、仮想列の値を比較することHAVING句を使用することができます。:

SELECT 
    id, 
    single_beds + single_bed_sofas + double_beds * 2 + double_bed_sofas * 2 AS maxguests 
FROM items 
HAVING maxguests > 10; 

ここでは、SQL Fiddleの例です。

1

お試しください。

SELECT 
id, 
single_beds + single_bed_sofas + double_beds * 2 + double_bed_sofas * 2 AS maxguests 
FROM items 
HAVING maxguests > 5 
+0

あなたは5秒でそれに私を打ち負かしました:) – Gremash

+0

この時間のみ:@Gremash – smozgur

関連する問題