【问题标题】:array of numbers as parameter of stored procedure (mysql) for select where in ()数字数组作为存储过程 (mysql) 的参数,用于选择 where in ()
【发布时间】:2017-05-24 16:21:34
【问题描述】:

查询

select *
from table
where field in (1,2)

在存储过程中,其中 (1.2) - 存储过程的参数

CREATE PROCEDURE `myproc` (IN numbers)

1) 告诉我如何将数字数组作为参数传递给存储过程(通过 php 完成)

$data = '(1,2,3)';
$result = $connection->query('CALL myproc($data)');

2) 告诉我如何检查传递给存储过程的元素是否不包含数组元素或包含一个等于 0 的元素

【问题讨论】:

    标签: php mysql arrays select stored-procedures


    【解决方案1】:

    试试下面的代码:

    $data = '(1,2,3)';
    $sql = sprintf("CALL myproc(%s)", $data);
    $result = $connection->query($sql);
    

    【讨论】:

    • Ranjith,但是如何使用存储过程中已经存在的数组! CREATE PROCEDURE myproc (IN numbers !!!!!UNKNOWN TYPE!!!!!)SELECT * FROM table WHERE field IN numbers
    【解决方案2】:

    我在 sql 中使用 FIND_IN_SET:

    select *
    from table
    where FIND_IN_SET(field, '1,2,3') > 0
    

    '1,2,3' 我在 php 代码中形成

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-10-08
      • 2018-08-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-16
      相关资源
      最近更新 更多