簡體   English   中英

在數組中選擇位置的存儲過程

[英]Stored procedure with select where in array

我的選擇查詢需要存儲過程

我的問題是我有String數組,它包含多個移動電話號碼以比較db表(如果可用)。如果可用,則返回行值。

我正在使用mysql 5.1,不支持在選擇查詢中比較數組值。

我收到錯誤的Mysql功能不支持的異常。因此,我將使用String builder更改代碼。 我已經問過了

我的問題:[ 使用Java字符串數組的Mysql存儲過程

因此,如果有可能使用存儲過程比較數組值。 我的選擇查詢是:

SELECT USER_ID, USER_NAME, REGISTRATION_ID, IMEI_CODE, MOBILE_NUMBER FROM USER WHERE MOBILE_NUMBER IN (String_array);

在此查詢中返回

`String_array =“ one_string_values”;

它返回單行。[ 使用java jdbc queryforObject ]

如果string_array =“ array_of_values”`

它什么也沒有返回我得到了異常Mysql功能不支持的異常

在我的方案中可以使用存儲過程的任何可能性。

您基本上想將多個值傳遞給MySQL中的存儲過程。 在SQL Server中,您可以將XML塊(作為字符串)傳遞給SP,然后輕松地解析該XML,從而在SP主體中從中提取多個值。 在MySQL中,我認為這不可能輕易實現。 您可以做的最好的事情:

1)將逗號分隔的字符串傳遞給SP,並在SP中解析該字符串;

2)動態生成SQL:
MySQL存儲過程接受帶有多個參數的字符串

3)您還可以查看FIND_IN_SET函數;

4)您還可以檢查XML函數:
http://dev.mysql.com/doc/refman/5.1/en/xml-functions.html
尤其是ExtractValue。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM