美文网首页
group by 查询抛异常问题

group by 查询抛异常问题

作者: 负15厘米的爱 | 来源:发表于2019-05-10 15:14 被阅读0次

    原因是5.7后默认开启了
    .mysql 5.7中的sql_mode的值为:
    2.ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

    解决方式实战

    1.方式一

    我直接在window环境下修改my.ini文件,
    添加或者修改 sql_mode ,然后重新启动服务。

    [mysql]  
    sql_mode ='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'
    

    2.方式二

    在 mysql 中有一个函数: any_value(field) 允许,非分组字段的出现
    所以 使用sql查询语句中不需要group by的字段上可以使用any_value()函数

    SELECT ANY_VALUE(id)as id,ANY_VALUE(uid) as uid ,ANY_VALUE(username) as username,ANY_VALUE(title) as title,ANY_VALUE(author) as author,ANY_VALUE(thumb) as thumb,ANY_VALUE(description) as description,ANY_VALUE(content) as content,ANY_VALUE(linkurl) as linkurl,ANY_VALUE(url) as url,ANY_VALUE(group_id) as group_id,ANY_VALUE(inputtime) as inputtime, count(id) as count FROM `news` GROUP BY `group_id` ORDER BY ANY_VALUE(inputtime) DESC LIMIT 20
    

    相关文章

      网友评论

          本文标题:group by 查询抛异常问题

          本文链接:https://www.haomeiwen.com/subject/ngdgoqtx.html