как использовать GROUP CONCAT в laravel
$assignment = assignment::find(Crypt::decrypt($id));
$assignment_details = $assignment->raw_plan()->groupBy('flag')->get();
Я хочу, чтобы следующий результат этого запроса в laravel
SELECT GROUP_CONCAT(name) AS 'names' FROM `raw_plans` where `assignment_id` = 1 GROUP BY`flag`
Пожалуйста, подскажите мне, как использовать GROUP_CONCAT в laravel
4 ответа:
Вы можете использовать relations в качестве построителя запросов для получения следующих результатов:
$assignment_details = $assignment->raw_plan() ->select(DB::raw('group_concat(name) as names')) ->where('assignment_id', 1) ->groupBy('flag') ->get();
Обновить
Используйте
table_name.*
в select, чтобы получить все поля.$assignment_details = $assignment->raw_plan() ->select('raw_plans.*', DB::raw('group_concat(name) as names')) ->where('assignment_id', 1) ->groupBy('flag') ->get();
Шойб несколько прав, но вы должны дать имя таблицы, прежде чем обращаться к именам столбцов в
DB:raw()
Вы должны попробовать это:
$data = DB::table('raw_plans') ->select(DB::raw("group_concat(raw_plans.name)")) ->groupBy('flag') ->where('assignement_id',1) ->get();
Надеюсь, это поможет.