我正在尝试编写一个 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 个结果集,而这正是您正在寻找的。p>
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/