将一组ints传递给laravel中的mssql sp,以便在“in”运算符中使用

问题描述 投票:2回答:1

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

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

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

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

有没有办法做这个工作?对不起,我的英语不好

php sql-server laravel laravel-5
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.