在 MySql Godaddy VPS Cpanel 中使用 sql_mode=only_full_group_by 获取 MYSQL 错误

Posted

技术标签:

【中文标题】在 MySql Godaddy VPS Cpanel 中使用 sql_mode=only_full_group_by 获取 MYSQL 错误【英文标题】:Getting MYSQL error with sql_mode=only_full_group_by in MySql Godaddy VPS Cpanel 【发布时间】:2020-05-04 13:42:33 【问题描述】:

您好,我在 godaddy-vps 服务器中使用 phpMYAdmin mysql,同时使用它我在执行我的 SQL 查询时遇到错误

我想要基于 posts.user_id=2 帖子列表的 likes 表中的 likes.post_id 总数,方法是通过 likes.post_id=posts.id 加入两个表,其中 likes_status='true'

SELECT likes.post_id, likes.like_status, P.id, P.user_id, 
  count(*) AS likeCountProfilePosts  FROM likes 
  INNER JOIN posts AS P ON P.id=likes.post_id  
  WHERE P.id IN (SELECT id FROM posts WHERE posts.user_id =2) 
  AND likes.like_status='true' 

出现错误:

#1140 - 在没有 GROUP BY 的聚合查询中,SELECT 列表的表达式 #1 包含非聚合列“howtags_social_db.likes.post_id”;这与 sql_mode=only_full_group_by 不兼容

如果有人知道解决办法,请告诉我

【问题讨论】:

这能回答你的问题吗? Why Mysql's Group By and Oracle's Group by behaviours are different 您使用的count 没有group by,因此所有结果都将作为一个返回,可能您想要group by likes.post_id, likes.like_status, P.id, P.user_id 【参考方案1】:

我刚刚更新了我的 SQL 查询,它对我来说工作正常,而不是更改 PHPMyAdmin 设置

 SELECT comments.post_id,  
  count(*) AS commentCount FROM comments  
  INNER JOIN posts AS P on P.id=comments.post_id  
  GROUP BY comments.post_id  
  ORDER BY comments.post_id DESC

【讨论】:

【参考方案2】:

试试这个, 1.打开godaddy面板 2.打开phpmyadmin 3. 打开变量设置

    搜索 MySQL 模式 仅删除 MySQL 模式变量的完整分组依据

【讨论】:

以上是关于在 MySql Godaddy VPS Cpanel 中使用 sql_mode=only_full_group_by 获取 MYSQL 错误的主要内容,如果未能解决你的问题,请参考以下文章

VPS上的IP表

如何在 javafx 应用程序中连接 Godaddy mysql

如何将数据从我的本地 phpmyadmin mysql 数据库复制到 godaddy cpanel mysql 数据库?

将 Django 连接到 VPS 上的 MySql 数据库

我的vps是256的现在运行网站,打开页面的时候 mysql占用cpu 100% ,是否mysql太大了

无法与远程用户连接到MySQL(托管在Ubuntu VPS上)