Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php MySQL-从表中选择唯一值_Php_Mysql_Distinct - Fatal编程技术网

Php 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.

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.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值后的唯一行。