我要运行的查询需要初始化一个@total
变量:
SET @total = 0;
SELECT ...
@total := @total + x AS total_x,
...
WHERE
@total < 1000
...
查询在通过 pma 测试时有效,但我无法通过 Laravel 运行它。尝试将这两个语句放入单个 DB::select( $query)
调用中,并运行两个后续调用:
DB::statement( DB::raw( 'SET @total := 0'));
$results = DB::select( $query); // only the "select.." part here
这里有什么解决方法?
最佳答案
对laravel一无所知,但从MySQL的角度来看,而不是像这样的两个查询
SET @total = 0;
SELECT @total,
...
FROM foo
WHERE...
您可以在一个查询中完成:
SELECT @total,
...
FROM foo,
(SELECT @total := 0) var_init_subquery_alias
WHERE...
希望对您有所帮助。
关于mysql - 如何在 Laravel 4 中初始化用户定义的 MySQL 变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27546707/