我已将流明版本从5.6更新到5.7。在这个/database包v5.7.15中,默认情况下只启用mysql模式\u full\u group\u。这会导致我的一些groupby查询失败。大多数人建议在内腔禁用严格模式。我认为禁用严格模式不是一个正确的解决方案。mysql中是否有其他可用的查询?或者我需要用php构建一个逻辑?我正在使用MySQL5.6
我在用怪癖,比如
SELECT MONTHNAME(date_created) MONTH, YEAR(date_created) YEAR
FROM test_table
GROUP BY MONTH, YEAR
我没有使用聚合函数。创建的数据列具有datetime数据类型
3条答案
按热度按时间z9zf31ra1#
如果您使用mysql 5.7,您应该通过更改sql查询来补偿full\u group\u,或者您可以从mysq设置中删除full\u group\u by选项
yacmzcpb2#
对于这种查询,如果不使用需要分组依据的agregate函数,可以使用如下distinct:
这样你就不需要禁用
full_group_by
限制你也可以这样做:
beq87vna3#
此sql查询将解决以下问题:
SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));