Используя некоторые творческие substring
, float
и charindex
логика, я пришел до
delete l1
from
latlong l1
inner join (
select
id,
substring(cast(latitude as varchar), 0, INSTR(CAST(latitude as varchar))+3, '.') as truncatedLat
from
latlong
) l2 on
l1.id <> l2.id
and l1.latitude = cast(l2.truncatedLat as float)
До бегите, попробуйте select *
вместо delete l1
, чтобы убедиться, что вы удаляете правильные строки.
Следует отметить, что это работало на SQL Server с использованием функций, которые, как я знаю, существуют в MySQL, но я не смог их протестировать против экземпляра MySQL, поэтому может потребоваться небольшая настройка, которая должна быть выполнена. Например, в SQL Server я использовал charindex
вместо instr
, но оба они должны работать аналогичным образом.