У меня есть следующий сценарий, и поскольку я новичок в mysql, и никто не ведёт меня, я спрошу вас.Вычислить MySQL координировать и обновлять строки
Мне нужно пройти через таблицу с координатами (lat, long в том же столбце) и сравнить их с заданным значением. Если расстояние меньше 1 км, обновляется другой столбец строки, который соблюдает условие.
Что-то вроде этого:
Foreach row in Table
if CalculateDistance(lat1,long1,lat2,long2) < 1
Update row.Column2
Я нашел формулу для расчета, здесь: https://gist.github.com/Usse/4086343
На данный момент я пытаюсь проверить формулу.
Спасибо вы
РЕДАКТИРОВАНИЕ 1:
Так что я создал процедуру, но я застрял.
Я создал раздвоение строковую функцию:
CREATE DEFINER=`root`@`localhost` FUNCTION `strSplit`(x varchar(255), delim varchar(12), pos int) RETURNS varchar(255) CHARSET utf8
return replace(substring(substring_index(x, delim, pos), length(substring_index(x, delim, pos - 1)) + 1), delim, '')
И мой хранимую процедуру обновления таблицы такова:
CREATE DEFINER=`root`@`localhost` PROCEDURE `turn_camera_on`(coordonates varchar(50))
BEGIN
DECLARE lat1 varchar(50);
DECLARE long1 varchar(50);
SET lat1 = strSplit(coordonates, ',', 1);
SET long1 = strSplit(coordonates, ',', 2);
UPDATE deviceinfo
SET CameraOn = 1
where CalculateDistance(lat1,long1,**lat2,long2**) < 1;
END
Вопрос заключается в том, что LAT2 и long2 являются строка в строку, в таблице ...
UPDATE my_table SET column2 = x WHERE Calcu .... <1 – Strawberry
Или ваш вопрос о том, как разбить лат. и долго. из их общей колонки? –
Я думаю, что Страйни мне ответит. Я вернусь с обновлениями как можно скорее – patri