Expression #1 of ORDER BY clause is not in SELECT list, references column 'X1.t0.name' which is not in SELECT list; this is incompatible with DISTINCT
这一般是mysql版本问题造成的。
临时解决:
select version();
select @@global.sql_mode 查询sql_mode
set global sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';
永久解决:
修改my.cnf,去掉ONLY_FULL_GROUP_BY参数:
添加sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
数据库表字段字符集不同的查询报错,首先查看创建表的sql,或者看表结构的字符集是什么样子,然后修改一致,
ALTER table table_name COLLATE=utf8mb4_general_ci, convert to CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;