Выбор строки с наименьшим значением 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;
Другие вопросы по тегам