Php MySQL-从表中选择唯一值
My MySQL表包含以下信息:Php MySQL-从表中选择唯一值,php,mysql,distinct,Php,Mysql,Distinct,My MySQL表包含以下信息: ID User City HomeLatitude HomeLongitude 1 Egon Spengler New York 19.123456 23.43546 2 Mac Taylor New York 19.12343588 23.43546 3 Sarah Connor New York 19.
ID User City HomeLatitude HomeLongitude
1 Egon Spengler New York 19.123456 23.43546
2 Mac Taylor New York 19.12343588 23.43546
3 Sarah Connor New York 19.128376 34.35354
4 Jean-Luc Picard La Barre 11.345455 12.4356546
5 Ellen Ripley Nostromo 32.76865 78.345435
从这个表中,我需要查询带有前两个小数点的唯一HomeLatitude值,因为前三个位置几乎相同,所以我只需要三行中的第一行
我使用了下面给出的查询
SELECT DISTINCT HomeLatitude, City FROM user;
但这将返回表中的所有行。有人能帮我吗。比如:
SELECT (DISTINCT ROUND(HomeLatitude, 1)) AS HomeLatitude, City FROM user;
函数将给出要显示的小数位数
SELECT DISTINCT ROUND(HomeLatitude,2), City FROM user GROUP BY ROUND(HomeLatitude,2);
虽然使用基于四舍五入纬度或经度的解决方案可能会得到结果,但也要为意外结果做好准备。两个地方也可能有完全相同的纬度,但不同的经度,反之亦然 如果你正在做任何类型的空间分析,你应该投资和一个函数,比如
第二个最好的选择是使用哈弗森公式或类似公式来寻找彼此靠近的地方 可能与我选中的重复,它将HomeLatitude值四舍五入到小数点后2位,但返回的行不唯一。我更改了左括号。否则您需要DISTINCT/ROUND作为内部查询。很抱歉,它有一些语法错误。我认为这样的括号是不可能的。好吧,我想我混合了一些sqlite。我的下一个建议是“分组”,但这已经是公认的答案。祝你好运但我只需要舍入HomeLatitude值后的唯一行。