我正在为不同类型的实体店创建一个谷歌地图服务。商店的反馈存储在不同的表中,而其他数据则存在于不同的表中。我创建了一个查询,它正在向我返回完美的回复,但我需要进行计算反馈表中有多少行,以便我可以使用以下内容计算反馈的百分比:
$totalfeed=ceil(($price+$value+$quality)/(3*count(rows count from feedback table)));
这是我的查询
$query = sprintf("SELECT shoptitle,logopic,complocality, profileurl, lat, lng,feedprice,feedvalue,feedquality, ( 3959 * acos( cos( radians('%s') ) * cos( radians( lat ) ) * cos( radians( lng ) - radians('%s') ) + sin( radians('%s') ) * sin( radians( lat ) ) ) ) AS distance FROM marketplace_userdata LEFT JOIN marketplace_datafeedback ON marketplace_userdata.mageuserid=marketplace_datafeedback.proownerid HAVING distance < '%s' ORDER BY distance",
mysql_real_escape_string($center_lat),
mysql_real_escape_string($center_lng),
mysql_real_escape_string($center_lat),
mysql_real_escape_string($radius));
}
答案 0 :(得分:1)
您可以使用Count()函数计算任何查询的行数。
SELECT COUNT(*) FROM table_name;
答案 1 :(得分:0)
对第一个表添加GROUP BY
条件并指定要计数的表。您可以使用marketplace_datafeedback表中的字段替换星号:
SELECT COUNT(marketplace_datafeedback.*),
shoptitle, logopic, complocality, profileurl,
lat, lng, feedprice, feedvalue, feedquality,
( 3959 * acos( cos( radians('%s') ) * cos( radians( lat ) ) * cos( radians( lng ) - radians('%s') ) + sin( radians('%s') ) * sin( radians( lat ) ) ) ) AS distance
FROM marketplace_userdata
LEFT JOIN marketplace_datafeedback
ON marketplace_userdata.mageuserid = marketplace_datafeedback.proownerid
GROUP BY marketplace_userdata.mageuserid
HAVING distance < '%s'
ORDER BY distance