2009-11-30 302 views
0

我發現PARSENAME函數是訂購存儲在數據庫中的IP地址的好選擇。 Here有一個例子。
我的問題是,我使用Hibernate在一個XML映射文件命名查詢和我試圖避免使用HQL'parsename'相當於

session.createSQLQuery(..) 

功能。
我想知道是否存在任何與HQL查詢相同的PARSENAME函數。我正在尋找它並找不到任何東西。
非常感謝。

回答

1

我沒有找到任何相關的。
最後,我執行以下ORDER BY子句來訂購數字方式的IP地址(我找到了解決辦法here):

order by cast(substring(host.ip, 1, locate('.', host.ip) - 1) as integer), 
       cast(substring(host.ip, locate('.', host.ip) + 1, locate('.', host.ip, locate('.', host.ip) + 1) - locate('.', host.ip) - 1) as integer), 
       cast(substring(host.ip, locate('.', host.ip, locate('.', host.ip) + 1) + 1, locate('.', host.ip, locate('.', host.ip, locate('.', host.ip) + 1) + 1) - locate('.', host.ip, locate('.', host.ip) + 1) - 1) as integer), 
       cast(substring(host.ip, locate('.', host.ip, locate('.', host.ip, locate('.', host.ip) + 1) + 1) + 1, 3) as integer)  
0

子類的話,並使用RegisterFunction()使PARSENAME提供給HQL查詢。 RegisterFunction沒有很好的記錄,但有plenty of examples on the web。我不確定你可以用訂購的結果。