如何在mysql中检索指定值的计数(即使没有记录)?
假设我有一个表,其中有一个名为“rating”的字段,它可以接受不同的值,但我希望接收特定值的计数 例如:如何在mysql中检索指定值的计数(即使没有记录)?,mysql,Mysql,假设我有一个表,其中有一个名为“rating”的字段,它可以接受不同的值,但我希望接收特定值的计数 例如: Create table mytable( rating int(1), ); 首先,我能想到的显而易见的方法是: select rating,count(rating) from mytable group by rating order by rating 问题是,虽然不清楚它将返回多少值,但用这种方式处理它们也可能不容易 我真正想做的是在一行中选择两个字段,显示具有特定值
Create table mytable(
rating int(1),
);
首先,我能想到的显而易见的方法是:
select rating,count(rating) from mytable group by rating order by rating
问题是,虽然不清楚它将返回多少值,但用这种方式处理它们也可能不容易
我真正想做的是在一行中选择两个字段,显示具有特定值的记录数
例如
//something like this (some pseudocode):
select count(rating=-1) as rating1, count (rating=1) as rating2 from mytable
你能给我一些简洁的建议吗?更简短的:
选择SUM(rating=-1)作为评级1,SUM(rating=1)作为mytable中的评级2
如果没有记录,我可能还会添加ifnull:选择ifnull(SUM(rating=-1),0)作为评级1,ifnull(rating=1),0)作为mytable中的评级2
select SUM(IF(rating=-1,1,0)) AS rating1,
SUM(IF(rating=1,1,0)) AS rating2 from mytable