2011-09-24 305 views
0

創建函數getNearIds(myLocationLon雙,myLocationLat雙)RETURNS 什麼MySQL的:創建函數返回一個數組

我只是想返回一個整數數組,經過長時間的搜尋後:有人說使用GROUP_CONCAT使該列表作爲逗號分隔列表,然後在調用函數時使用find_in_set。這工作正常,但在HQL(Hibernate查詢語言)它沒有。

所以我需要一個清晰的方法來爲這個函數返回一個整數數組,如果我想從項目表返回一個項目列表,這是可能的。

我覺得在Oracle DB甚至SQL服務器上做這件事很簡單。爲什麼在MySQL中它非常強悍。

請大家幫忙。

回答

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 
+0

首先感謝您的關注。我同意你的存儲過程,但我必須在聽到的是「OUT」中定義一個參數,以便它具有什麼數據類型。換句話說,我會在pro語句的調用者那裏獲得這些ID。對不起,我基本上是一個oracle開發人員,他可以新近到我的sql找到有趣的限制,但更簡單的數據庫引擎,以方便開發。 –

+0

不知道我理解你的問題,但在這個例子中沒有「OUT」 - 它是一個返回結果集的proc - 本質上是一個行集合,每個行都有一列,可能是int類型的 - 儘管我猜那些ID可以是任何東西,對吧?這將取決於你的數據庫表,但我假設這些ID是整數。如果你改述你的問題,也許這會幫助我更多地理解你的意思。 – itsmatt

+0

嘿,這很有趣。你說**這是一個返回一個結果集的proc ** ....一個proc可以返回一些東西。以及這對我來說真的很新,請給我一個關於如何使用上面的示例過程的示例。並非常感謝這個信息 –

相關問題