【已解决】SQLSTATE[42000]: Syntax error or access violation: 1055 Expression #1 of SELECT list is not in
改一个老项目,然后配置完成突然就报错了,MySQL是5.7的版本。
这个错误是MySQL在严格模式下特有的,当你尝试查询一个表但SELECT语句中列出的某些字段并没有明确出现在GROUP BY子句中时,就会触发这个错误。这是为了防止不确定的结果,因为在没有明确的聚合函数(如SUM、AVG、MAX等)的情况下,MySQL不知道应该如何为这些未列出的字段选择值。
解决方法:
在my.ini的配置文件中,[mysqld]下面加入:
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
以禁用MySQL的严格模式即可。