我有一些postgresql函数,我在表单中运行:
SELECT * FROM pgfunction(1,2,3);
这使我能够对结果进行过滤/排序/分组:
SELECT * FROM pgfunction(1,2,3) WHERE value > 10;
如何使用预处理语句将参数传递给laravel中的postgresql函数,以便在laravel中过滤结果。例如:
DB::table('pgfunction',array(1,2,3))->where('value','>','10');
这可能吗?
答案 0 :(得分:1)
DB::raw
将创建一个原始SQL字符串,但不会将其用作查询。您可能需要使用DB::select()
来运行“原始sql”查询。
$fnc = sprintf("pgfunction(%s)", implode(',', array(1,2,3));
DB::select()->from(DB::raw($fnc))->where('value', '>', 10);
注意:这是我未经测试的结果。希望能帮助到你。有关使用该文档的详细信息,请参阅有关使用Raw Expressions的文档。