mysql中的数学运算为每一行返回相同的结果
我对这个mysql查询有问题:mysql中的数学运算为每一行返回相同的结果,mysql,join,Mysql,Join,我对这个mysql查询有问题: SELECT p.* , POW( [fixed_value1] - CAST(p.lat AS DECIMAL),2) + POW( [fixed_value2] - CAST(p.lon AS DECIMAL),2) as distance, l.type FROM [TABLE1] p LEFT JOIN [TABLE2] l ON p.id = l.id AND l.uid = '4' WHERE [... ...] ORDER BY distan
SELECT p.* , POW( [fixed_value1] - CAST(p.lat AS DECIMAL),2) + POW( [fixed_value2] - CAST(p.lon AS DECIMAL),2) as distance, l.type FROM [TABLE1] p
LEFT JOIN [TABLE2] l
ON p.id = l.id
AND l.uid = '4'
WHERE [... ...] ORDER BY distance ASC LIMIT 50
我得到的结果是一切都很好,除了十进制列,每行都是一样的。
我找不到我做错了什么我最近删除了CAST函数,它正常工作了……我想知道这一点。您可能还需要平方和的平方根来计算距离。在编写自己的代码之前,请不要忘记。引擎一侧的错误实现,但转换为十进制实际上将数字转换为字符串,然后无法将其转换回进行数学运算。@Mike我不需要确切的距离,我只是希望结果井然有序