首先,我们有一张数据字段如下的数据表。
现在,我想要取每个 event_id 下最新的 status 的值,于是,我瞬间写了如下的 sql:
mysql> select event_id, status, max(id) from t_event_flow group by event_id;
ERROR 1055 (42000): Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'testdb.t_event_flow.status' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
报错了,报错信息显示:SELECT 中的第 2 个字段不在 GROUP BY 的子句中,并且包含了非聚合列 status,且这个列在功能上不依赖于 GROUP BY 的子句,这跟 only_full_group_by 的 sql_mode 不符合。
我们先查看当前的 SQL 模式: