Я искал ответ, но должен был согласиться с ответом сам.Это мой первый вклад, пожалуйста, держись со мной; -)
SELECT s1.id, s1.name, s2.id, s2.name FROM venues s1, venues s2
WHERE s2.id > s1.id AND
(POW(s1.latitude - s2.latitude, 2) + POW(s1.longitude - s2.longitude, 2) < 0.001)
Первое условие - выбрать только половину матрицы, так как порядок подобных мест не важен.Второй - это упрощенный калькулятор расстояний.Как предложил пользователь 185631, формула haversine должна сработать, если вам нужна большая точность, но она мне не нужна, так как я искал дубликаты с теми же координатами, но не смог рассчитаться с s1.latitude = s2.latitude AND s1.longitude = s2.longitude из-за повреждения с плавающей запятой / десятичного числа в моей БД.
Конечно, проверка этого при вставке была бы лучше, но если вы получили поврежденную БД, вам нужно как-то ее очистить.Также обратите внимание, что этот запрос слишком тяжел на сервере, если ваши таблицы большие.