【问题标题】:Stored procedure with select where in array在数组中选择位置的存储过程
【发布时间】:2015-02-10 07:43:54
【问题描述】:

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

我的问题是我有字符串数组,它包含多个手机号码来比较 db 表是否可用。如果可用则返回行值。

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

我收到错误Mysql feature not supported exception。所以我将使用字符串生成器更改我的代码。 我已经问过了。

我的问题:[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);

在此查询中返回 if

`String_array = "one_string_values";

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

如果 string_array = "array_of_values"`

它什么也没返回,我得到了异常Mysql feature not supported exception

在我的场景中使用存储过程的任何可能性。

【问题讨论】:

    标签: java mysql arrays stored-procedures


    【解决方案1】:

    您基本上希望将多个值传递给 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。

    【讨论】:

    • 感谢您的回复。现在我检查一下。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-15
    相关资源
    最近更新 更多