在我的脚本中,我尝试按与用户的距离过滤所选数据。为此,我使用以下查询,该查询将返回10公里半径内的每个帖子:
$query = "SELECT * FROM Table WHERE ((rad2deg(acos((sin(deg2rad($actlat))*sin(deg2rad(lat))) + (cos(deg2rad($actlat))*cos(deg2rad(lat))*cos(deg2rad($actlon-lon))))))*111.13384) < 10";
我现在面临的问题是我得到了以下错误消息:
Uncaught mysqli_sql_exception: FUNCTION database_name.rad2deg does not exist
所以我尝试了另一种方法,使函数按其应有的方式工作:
$test = rad2deg(x);
echo $test;
为什么我不能在查询中使用rad2deg
函数?
答案 0 :(得分:2)
您可以使用 degrees() mysql函数将弧度值转换为度数,并使用 radians()函数将度数转换为弧度:
function sumFor(pattern, data) {
return data
.filter(item => item.text.match(pattern))
.reduce((accu, item) => accu + item.total, 0);
}
sumFor(/^Male/, data); // 125480
sumFor(/^Female/, data); // 154916