我进行了SELECT,将一行中的不同值添加到maxguests字段中。

我无法管理的是在WHERE子句中重用该虚拟值。

我的查询是

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


和预期的一样,这很好。

现在,我想添加WHERE maxguests > 5,但我收到错误消息,指出该列是未知的。


  错误代码:1054。“ where子句”中的未知列“ maxguests”


将总和别名化为maxguests不足以能够在查询中使用它吗?

最佳答案

您可以使用HAVING子句比较虚拟列值,例如:

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


这是SQL Fiddle中的示例。

10-08 16:04