выбор строки с наименьшим значением GLength - PullRequest
0 голосов
/ 26 марта 2012

Допустим, у меня есть таблица с именем Place with column:

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 Ответ

0 голосов
/ 26 марта 2012

ОК, сделал это с моим товарищем по команде, если кто-то хочет, вот выбор:

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;
...