代码之家  ›  专栏  ›  技术社区  ›  Kristian

如何将WHERE用于自定义字段(别名)?

  •  4
  • Kristian  · 技术社区  · 14 年前

    我如何完成这样的查询:

    SELECT type, COUNT(name) as cnt FROM products WHERE cnt > 1 GROUP BY type
    

    该查询产生错误 #1054 - Unknown column 'cnt' in 'where clause'

    这是因为 WHERE 分组前应用。
    如何解决此问题?

    表格结构:

    id      name                type        price
    123451  Park's Great Hits   Music       19.99
    123452  Silly Puddy         Toy         3.99
    123453  Playstation         Toy         89.95
    123454  Men's T-Shirt       Clothing    32.50
    123455  Blouse              Clothing    34.97
    123456  Electronica 2002    Music       3.99
    123457  Country Tunes       Music       21.55
    123458  Watermelon          Food        8.73
    

    表结构借用自 http://www.tizag.com/mysqlTutorial/mysqlcount.php 为了简单起见。

    1 回复  |  直到 13 年前
        1
  •  15
  •   Himanshu THE ONLY ONE    13 年前

    你需要使用 HAVING 子句来筛选聚合查询产生的记录:

    SELECT type, COUNT(name) as cnt FROM products GROUP BY type HAVING cnt > 0;
    
    推荐文章