mysql - 如何在 Laravel 4 中初始化用户定义的 MySQL 变量?

标签 mysql laravel laravel-4

我要运行的查询需要初始化一个@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/

相关文章:

php - 两个mysql表之间和每个循环之间的关联数组

php - sql server从两个表中获取字符串中的最大值整数

php - CORS 与 Laravel 4

mysql - sql连接查询以按国家/地区获取最多查看的文章

mysql - 查询字段同时过滤掉非数字字符 - Laravel

laravel - 如何从 Laravel 5 中的最后一个数组中删除逗号?

php - 如何在另一个中间件中使用 'Clousre $next' 调用 Laravel 中间件的 handle() 方法?

php - Laravel 4.1 原始查询访问结果

php - Laravel Eloquent 如何使用 between operator

mysql - Propel ORM 在单次保存中添加多对多关系数据