将一组ints传递给laravel中的mssql sp,以便在" in"中使用操作者

时间:2017-12-16 11:21:04

标签: php sql-server laravel laravel-5

我有一个mssql sp,其中一个参数是表值。我想从laravel项目中传递一个int数组。 我试过这个:

DB::connection("sqlsrv")->select(
            "Exec spName @table-valuedParam=?, param2=?.., array(arrayofInt, param2..) )

我得到错误: 参数不匹配,模式需要字符串但是给定数组。

我的目的是从表中选择该数组中id的记录,实际上sp包含这样的部分 其中id为(@idList) 我使用表值但可以从laravel传递一个数组。怎么办呢?

有没有办法做这个工作? 抱歉我的英文不好

1 个答案:

答案 0 :(得分:0)

经过大量搜索,我得到了答案。 我将用户选择的id作为带有逗号分隔的字符串传递,并创建一个sql server函数,它执行split作业并返回一个int表,然后我使用where子句,如: select * from mytable where id in(select * from sqlsrvFunc(@idsStr) 它完美地工作