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

标签 php mysql alias where-clause

我如何完成这样的查询:

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 借用了表结构。

最佳答案

您需要使用HAVING 子句来过滤聚合查询产生的记录:

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

关于php - 如何将 WHERE 用于自定义字段(别名)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11558889/

相关文章:

java - Virtuoso Jena 提供程序查询别名语法

php - 检查数据库中复选框的值

php - 如何在 PHP 中将变量的值添加到变量的名称中

visual-studio - .csproj 中的 Visual Studio 快捷方式/别名

mysql - 使用 Sequelize 的 Express JS 需要更多时间来执行查询

php - 当每行有多个用逗号分隔的数据时,如何计算各行的值总数?

mysql - 如何在 SQL 的数学运算符中使用别名?

javascript - Ajax文件上传,想传递一个int,但我不知道如何

php - 如何使用不同于帖子类型名称的存档 slug 创建自定义帖子类型

php - nginx + WordPress : Proper user/file permissions for SFTP + auto update?