【发布时间】:2019-11-24 14:34:26
【问题描述】:
我从 Godaddy 升级到蓝色主机,现在出现此错误:
语法错误或访问冲突:1055 SELECT 列表的表达式 #2 不在 GROUP BY 子句中,并且包含在功能上不依赖于 GROUP BY 子句中的列的非聚合列“customeTable.fromuser”;这与 sql_mode=only_full_group_by' 不兼容
$statement = $db->prepare("SELECT * FROM(SELECT DISTINCT(thread_id) AS
thread_id, fromuser, touser, aDeleted, bDeleted, avatar, message, seen,
time FROM conversations WHERE fromuser=:username AND bDeleted=0 OR
touser=:username AND aDeleted =0 ORDER BY time DESC) customeTable GROUP
BY thread_id ORDER BY time DESC");
$statement->bindParam("username", $username, PDO::PARAM_STR) ;
$statement->execute();
【问题讨论】:
-
更改严格性,或者可能更合乎逻辑地将您正在聚合的列放在选择列表中。您更改了 mysql 版本,您现在正在运行 5.7。
-
最终禁用 only_full_group_by,现在全部修复 :)
标签: mysql group-by aggregate-functions mysql-5.7