繁体   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