我想从职位空缺表中获取职位空缺。
职位空缺表
id | 位置
1 | Laravel开发
2 | php开发人员
3 | Laravel开发
4 | Laravel开发
5 | Laravel开发
我想使用一些where语句获取空缺,但结果应为count。
如您在上面的屏幕截图中所见,...我仅使用以下查询获取“排名”列和“计数”
$vacancies = Vacancy::where('tag_category_id', $TagCatId)
->select('position', DB::raw('count(*) as total'))
->groupBy('position')
->get();
如果我也希望在此结果中显示ID列怎么办?
答案 0 :(得分:1)
您需要首先在mysql连接的
strict
中将database.php
键设置为 false
'strict' => false, //change true to false ..
然后运行此命令清除配置
php artisan config:cache
然后运行此查询
Vacancy::where('tag_category_id', $TagCatId)
->select('id','position', DB::raw('count(*) as total'))
->groupBy('position')
->get();
详细了解严格模式see
如果您想以模式进行自定义,则可以see
如果您处理所有操作,则禁用它不会使您的网站不安全 在控制器中进行验证并遵循Laravel之类的最佳实践 已经开箱了。
答案 1 :(得分:0)
$vacancies = Vacancy::where('tag_category_id', $TagCatId)
->select(DB::raw('GROUP_CONCAT(id) AS IDs','position', DB::raw('count(*) as total'))
->groupBy('position')
->get();
这将为您提供每个位置的ID的逗号分隔列表
我在用户表上运行了此命令,因此忽略列名,但您将获得以下格式的结果:
Users::select(DB::raw('GROUP_CONCAT(id) AS IDs'), DB::raw('count(*) as Total'), 'team_id')
->groupBy('team_id')
->get();
App\Users {#3297
IDs: "9,69,70,72,73",
Total: 5,
team_id: 11,
},