在 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 错误的主要内容,如果未能解决你的问题,请参考以下文章
如何在 javafx 应用程序中连接 Godaddy mysql
如何将数据从我的本地 phpmyadmin mysql 数据库复制到 godaddy cpanel mysql 数据库?