MySQL: создать функцию, которая возвращает массив - PullRequest
1 голос
/ 25 сентября 2011

CREATE Функция getNearIds (myLocationLon double, myLocationLat double) ВОЗВРАЩАЕТСЯ ЧТО

Я просто хочу вернуть массив целых чисел после долгого поиска: некоторые говорят, что используйте Group_concat, чтобы сделать список разделенным запятыми, затем используйте find_in_set при вызове функции. это работает нормально, но в HQL (языке запросов Hibernate) это не так.

поэтому мне нужен четкий способ для этой функции возвращать массив целых чисел, что если это возможно, если я хочу вернуть список элементов из таблицы элементов, это возможно.

Я думаю, что это очень просто сделать в БД Oracle или даже на сервере SQL. почему это очень сложно в MySQL.

пожалуйста, помогите.

1 Ответ

2 голосов
/ 25 сентября 2011

Почему бы просто не использовать хранимую процедуру?Вы могли бы просто заставить его возвращать набор результатов, в котором были строки только с одним столбцом.

Хранимые функции не могут делать то, что вы хотите делать - что ж, я полагаю, вы могли бы сделать эту групповую конкатату, но зачем беспокоиться?Создайте хранимую процедуру и верните нужные вам целые числа.

Что-то вроде:

CREATE PROCEDURE getNearIds 
     (myLocationLon double, myLocationLat double)
BEGIN
   # whatever your logic is to get the ids... 
   # e.g.,
   select id from locations where [whatever "near" means]
END
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...