Hi 首先 phpmyadmin 报的错误是透传 mysql 给的错误码,按照这个错误码去查找问题就可以了。
其次,mysql 的 1055 错误码的意思是:SELECT 的字段里,不可包含除了 GROUP BY 字段、聚集函数字段以外的字段。在你的例子里,由于用到了GROUP BY BINARY s.SCHEMA_NAME
,那么 SELECT 里的 s.SCHEMA_NAME (是的,mysql 认为他们不是同一个字段) 和 DEFAULT_COLLATION_NAME 就很碍眼。
所以解决方案:
SELECT s.SCHEMA_NAME, MAX(s.DEFAULT_COLLATION_NAME)
FROM `information_schema`.SCHEMATA as s
GROUP BY s.SCHEMA_NAME
ORDER BY `SCHEMA_NAME` ASC;
或将所有 SELECT 涉及字段放在 GROUP BY 中
SELECT s.SCHEMA_NAME, s.DEFAULT_COLLATION_NAME
FROM `information_schema`.SCHEMATA as s
GROUP BY s.SCHEMA_NAME, s.DEFAULT_COLLATION_NAME
ORDER BY `SCHEMA_NAME` ASC;
或移除 only_full_group_by 的限制,不需要改你的代码,参见:https://stackoverflow.com/questions/23921117/disable-only-full-group-by
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。