2016-04-01 20 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但我得到的錯誤是colums未知。

錯誤代碼:1054未知列「maxguests」在「where子句」

是別名該款項爲maxguests不夠的,能夠在查詢中使用它?

+1

您只能在分組中使用別名列名,按順序排列並在MySQL中使用子句。 – 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

嘗試HAVING。

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