mysql - Laravel 4 中的路由和 MySQL 查询

标签 mysql laravel laravel-4

我正在尝试编写一个 mySQL 语句,该语句将获取与 user_id 匹配的行以及 DB 中的所有其他行。目前我正在这样做,但我想知道是否有更好的方法来执行查询,以便它发生在一个查询中?

Route::get('user/candles-mix/{user_id?}', function($user_id){
        $candles = DB::select('SELECT * FROM candles WHERE user_id = ? LIMIT 1', array($user_id));
        $candles2 = DB::select('SELECT * FROM candles');
        return Response::json(array($candles, $candles2));
    });

最佳答案

您只需运行 select * from candles查询,并使用 PHP 按 user_id 过滤其结果。这会将其减少为一个查询。我认为不可能从单个查询中获得 2 个结果集,而这正是您正在寻找的。

Route::get('user/candles-mix/{user_id?}', function($user_id){
    $allCandles = DB::select('SELECT * FROM candles');
    $userCandles = array_filter(function($candle) {
        return ($user_id == $candle['user_id']);
    });

    return Response::json(array($userCandles, $allCandles));
});

关于mysql - Laravel 4 中的路由和 MySQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25510001/

相关文章:

php - Laravel 在所有请求中检查登录和 Auth::check()

php - Laravel phpunit 没有得到正确的 url

java - 如何使用 Java 更改数据库连接中的 MySQL 时区?

php - 如何跨表引用具有一致主键的另一个表

MySQL 搜索引擎 - AND 关键字

javascript - Laravel 4,将变量传递给 javascript 中的路由

mysql - 删除某个用户创建的所有表

php - Angular 2 + Angular cli + Laravel 5.3

php - 如何在 Laravel 5.5 中编辑 "The page has expired due to inactivity"的 View

javascript - 在 laravel 中将 html block 转换为图像