根据mysql中的范围对数据进行分组

时间:2019-07-26 05:09:11

标签: php mysql

我的数据库中有餐桌产品。价格列具有各种重复值。我想获取基于范围10-50、51-100等的产品数量。

我可以识别的一种方法是使用不同的where子句在数据库上执行多个查询。

我想知道是否可以在一个查询中完成。

我尝试过的是

$q = "SELECT count(*) FROM products WHERE price>10 AND price<50"
$q1 = "SELECT count(*) FROM products WHERE price>50 AND price<100" 

现在,这给了我单个范围的计数,但是我必须手动为所有范围编写查询。

1 个答案:

答案 0 :(得分:0)

select product_name, 
       count(case when price between 10 and 50 then 1 else null end) as `10-50 count`,
       count(case when price between 51 and 100 then 1 else null end) as `51-100 count`
from products
group by product_name