Выбор строки с наименьшим значением GLength
Допустим, у меня есть таблица с именем Place с столбцами:
placeId int not null auto_increment,
latitude double,
longitude double,
Не имеет значения, какие это столбцы, просто получите представление.
Теперь предположим, что я получаю каким-то образом широту и долготу точки, чего я пытаюсь добиться, это выбрать из строки таблицы Place, какое значение GLength является наименьшим.
Это легко, когда я делаю что-то вроде этого в MySQL:
SET @ls = 'LineString(50.123 23.321,51.567 23.123)';
SELECT GLength(GeomFromText(@ls));
Но, как правило, я понятия не имею, как я могу сделать такой запрос с переменными (я плохо разбираюсь в MySQL) какую-либо помощь?
Я бы использовал порядок по GLength(..) и ограничил бы результат 1, но как я могу сделать такую итерацию?
Моя цель - запустить код через Java и Hibernate как собственный SQL-запрос.
1 ответ
Решение
Хорошо, сделал это с моим товарищем по команде, если кто-то хочет, вот выбор:
SELECT GLength(
linestringfromwkb(
LineString(
GeomFromWKB(Point(j.latitude,j.longitude))
,GeomFromWKB(Point(51,22))))),j.latitude,j.longitude FROM my_database.place_table j
order by
GLength(
linestringfromwkb(
LineString(
GeomFromWKB(Point(j.latitude,j.longitude))
,GeomFromWKB(Point(51,22))))) asc
limit 1;