您可以在这个没有输出的原始查询上寻求帮助,
select s.name+'.'+o.name
from sys.objects o
JOIN sys.schemas s
ON o.schema_id=s.schema_id
where type IN ('U')
and modify_date > '20160404'
但是如果我会手动这样做,它可以正常工作..
$userproj_id = UserProject::select('projid')->where('user_id', $id)->get()->toArray();
$flattenid = array_flatten($userproj_id);
foreach ($flattenid as $projid) {
$projidarr [] = $projid;
}
$users = DB::select('select * from project where projid in ( ? ) and user_id = 3 ', $projidarr );
但是当我手动执行此操作时,不会再次输出。
$users = DB::select('select * from project where projid in ( ? ) and user_id = 3 ', ['12345']);
提前谢谢。
答案 0 :(得分:0)
这是因为在你的绑定数组中,你需要很多参数 - SQL只需要一个,你提供两个。 一个适当的参数列表将是[implode(',',[12345,1111])]但在这种情况下它将是一个字符串,结果也不正确
这个怎么样?
DB::table('project')
->whereIn('projid', [12345, 1111])
->where('user_id', '=', 3);
答案 1 :(得分:0)
原始查询:
$users = DB::select('select * from project where projid in ('. implode(',', $projidarr).') and user_id = 3 ');
和Laravel查询:
DB::table('project')
->whereIn('projid', $projidarr)
->where('user_id', '=', 3);