MySQL:创建返回数组的函数

时间:2011-09-24 23:12:34

标签: mysql arrays function

CREATE函数getNearIds(myLocationLon double,myLocationLat double)RETURNS WHAT

我只想在长时间搜索后返回一个整数数组:有人说使用Group_concat将列表作为逗号分隔列表,然后在调用函数时使用find_in_set。这工作正常,但在HQL(Hibernate查询语言)中却没有。

所以我需要一个明确的方法让这个函数返回一个整数数组,如果我想从items表中返回一个项目列表,这是可能的。

我认为在Oracle DB甚至SQL服务器中这很简单。为什么MySQL很难。

请帮忙。

1 个答案:

答案 0 :(得分:2)

为什么不直接使用存储过程?您可以简单地让它返回一个只有一列的行的结果集。

存储的功能无法做你想做的事情 - 好吧,我想你可以做那个连续的事情,但为什么要这么麻烦?创建存储过程并让它返回您想要的整数。

类似的东西:

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