我想统计正面、中性、负面反馈的数量。
我有 3 个看起来非常相似的查询。有没有一种方法可以将所有这些放入一个查询中?还是最简洁的方式?
提前致谢,问候。
$total_positive_seller = mysql_num_rows(mysql_query("SELECT id FROM feedback
WHERE seller='$user' AND feedback='positive'"));
$total_neutral_seller = mysql_num_rows(mysql_query("SELECT id FROM feedback
WHERE seller='$user' AND feedback='neutral'"));
$total_negative_seller = mysql_num_rows(mysql_query("SELECT id FROM feedback
WHERE seller='$user' AND feedback='negative'"));
最佳答案
如果你只是想计算出现次数,你使用mysql_num_rows
是相当低效的。最好使用 MySQL 的 count(*)
功能,如以下查询:
SELECT feedback, count(*) AS `count`
FROM feedback
WHERE seller='$user'
GROUP BY feedback
这给你的东西看起来应该像下面这样
feedback | count
----------------
positive | 12
neutral | 8
negative | 3
之后您可以像解析任何其他查询结果一样以行方式解析它。
编辑
如果您想在下面的代码中单独处理每个条目,您可以使用类似下面的内容。在此代码之后,您可以引用所有条目,例如,通过 $result['positive']
。
$qres = mysql_query( 'SELECT ...' );
$result = array();
while( $row = mysql_fetch_array( $qres ) ) {
$result[ $row['feedback' ] ] = $row['count'];
}
关于php - 我可以让这三个 SQL 查询只适合一个吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10667343/