查询我想运行需要初始化@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
这里的解决方法是什么?
答案 0 :(得分:1)
对laravel一无所知,但从MySQL的角度来看,而不是像
这样的两个查询SET @total = 0;
SELECT @total,
...
FROM foo
WHERE...
您可以在一个查询中执行此操作:
SELECT @total,
...
FROM foo,
(SELECT @total := 0) var_init_subquery_alias
WHERE...
希望它有所帮助。
答案 1 :(得分:0)
如果要在数据库中运行一组操作,则需要使用事务。