【发布时间】:2021-04-05 23:26:28
【问题描述】:
我在 MySQL (5.7.21) 数据库中运行以下查询没有任何问题,但此查询在我的托管服务器数据库 MariaDB (10.1.47-MariaDB) 上引发错误,我没有超级权限更改sql mode。
$projects = V2Project::leftJoin('v2_project_locations as v2pl', 'v2pl.project_id', 'v2_projects.id')
->leftJoin('v2_locations as v2l', 'v2l.id', 'v2pl.location_id')
->selectRaw('v2_projects.id, v2_projects.name, group_concat(v2l.name) as locations')
->withDepartmentInMind()
->onlyAuthorizedObjects();
if($by_current_step == true) {
$projects = $projects->where('current_step', 'plan');
}
if($search_val) {
$projects = $projects->whereIn('v2_projects.id', $search_val);
}
$projects = $projects->groupBy('v2_projects.id')->paginate(10);
$projects->appends(Input::except('page', '_token'));
错误:
SQLSTATE[42000]: Syntax error or access violation: 1055 'pm_form_moe.v2_projects.name' isn't in GROUP BY (SQL: select v2_projects.id, v2_projects.name from `v2_projects` group by `v2_projects`.`id`)
我也尝试添加每一列,但我需要与 mySQL 相同的功能而不添加所有列。
【问题讨论】:
-
根据这个我猜你的mysql服务器是旧版本...stackoverflow.com/questions/33591606/…
-
你使用的是哪个版本的 MySQL / MariaDB
-
groupBy('v2_projects.id, v2_projects.name') -
MariaDB 版本:10.1.47-MariaDB,MySQL 版本:5.7.21
-
这能回答你的问题吗? Mysql ONLY_FULL_GROUP_BY mode issue - Pick single Image URL(any) for each Album检查解决方案3,但推荐1和2