【发布时间】:2017-06-29 11:59:36
【问题描述】:
我在 Ubuntu Server 16.xx 上使用 MySql 版本 5.7.18,
我有以下疑问:
SELECT DISTINCT
w.sno,
CONCAT(
CONCAT(
(SELECT
bch_lbl
FROM
list_benches
WHERE sno = w.lb_sno),
' => ',
CASE
WHEN w.bench_cat_sno = 0
THEN 'All Categories'
ELSE
(SELECT
cat_name
FROM
case_categories
WHERE sno = w.bench_cat_sno)
END,
' [From ',
b.date_from,
' To ',
b.date_to,
'] '
),
CASE
WHEN b.is_active = 1
THEN 'Active'
ELSE 'Expired'
END
) AS benchLbl,
w.is_active,
b.j_sno
FROM
working_benches w,
bench_judges b
WHERE w.sno = b.b_sno
GROUP BY w.sno
ORDER BY b.is_active DESC ;
执行后,此查询返回以下错误:
Error Code: 1055
Expression #2 of SELECT list is not in GROUP BY clause and contains
nonaggregated column 'phc_caseflow.b.date_from' which is not functionally
dependent on columns in GROUP BY clause; this is incompatible with
sql_mode=only_full_group_by
我唯一了解的是“sql_mode=only_full_group_by”,它成为上述错误的原因。
任何人都可以建议我如何更改上述查询以适应并解决问题 - 只需要编辑我的查询而不是 sql_mode:
提前谢谢...
【问题讨论】: