存储过程,选择数组中的位置

时间:2015-02-10 07:43:55

标签: java mysql arrays stored-procedures

我的选择查询需要存储过程

我的问题是我有字符串数组它包含多个移动数字来比较数据库表(如果可用或不存在)。如果有可用的返回行值。

我正在使用mysql 5.1。在select查询中比较数组值不支持。

我收到错误 Mysql功能不支持异常。所以我将使用“字符串”构建器更改我的代码。 我已经问过了。

我的问题:[Mysql Stored procedure with java String Array

因此,如果有可能使用Store过程比较数组值。 我的选择查询是:

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功能不支持异常

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

1 个答案:

答案 0 :(得分:0)

您基本上希望将多个值传递给MySQL中的存储过程。在SQL Server中,您可以将XML块(作为字符串)向下传递给SP,然后轻松解析该XML,从SP体中提取多个值。在MySQL中,我不认为这很容易实现。你可以做的最好的事情:

1)将逗号分隔的字符串传递给SP,并在SP中解析该字符串;

2)动态生成SQL:
MySQL stored procedure that accepts string with multiple parameters

3)你也可以查看FIND_IN_SET函数;

4)您还可以检查XML功能:
http://dev.mysql.com/doc/refman/5.1/en/xml-functions.html
特别是ExtractValue。