MySQL选择查找具有匹配名称列的类似lat/lng

MySQL选择查找具有匹配名称列的类似lat/lng,mysql,Mysql,我试图在一个位置表中查找行,当四舍五入到小数点后2位时,这些行具有相同的纬度/经度以及相同的名称。这是我的桌子(例如): 当四舍五入到小数点后2位时,哪个SELECT语句会找到lat/lng匹配的实例(如上面的一个),并且名称相同 我正在寻找类似于此查询的东西,但显然不起作用(但询问我在追求什么): 其中name=name始终为真,因为它只是在同一行内进行比较,而不是跨不同行进行比较 您需要将所有3列放入GROUP BY子句中 SELECT * FROM pb_locations GROUP B

我试图在一个位置表中查找行,当四舍五入到小数点后2位时,这些行具有相同的纬度/经度以及相同的名称。这是我的桌子(例如):

当四舍五入到小数点后2位时,哪个SELECT语句会找到lat/lng匹配的实例(如上面的一个),并且名称相同

我正在寻找类似于此查询的东西,但显然不起作用(但询问我在追求什么):


其中name=name
始终为真,因为它只是在同一行内进行比较,而不是跨不同行进行比较

您需要将所有3列放入
GROUP BY
子句中

SELECT *
FROM pb_locations
GROUP BY ROUND(lat, 2), ROUND(lng, 2), name
HAVING COUNT(*) > 1

我不知道你可以分组多行…这是超级漂亮…谢谢!如果不合并多行,
groupby
还有什么作用?你是说多列吗?在你的问题中,你已经这样做了——你用2列来分组,这只是3列。
SELECT * FROM pb_locations GROUP BY ROUND(lat,2),ROUND(lng,2) WHERE name = name HAVING count(ID) > 1
SELECT *
FROM pb_locations
GROUP BY ROUND(lat, 2), ROUND(lng, 2), name
HAVING COUNT(*) > 1