mysql升级到8后报错,only_full_group_by报错
Posted
技术标签:
【中文标题】mysql升级到8后报错,only_full_group_by报错【英文标题】:Mysql error after upgrade to 8, only_full_group_by error 【发布时间】:2018-12-30 03:36:02 【问题描述】:这行给了我错误:
错误:SELECT 列表的表达式 #1 不在 GROUP BY 子句中,并且 包含非聚合列“hng_1.tags.id”,它不是 功能上依赖于 GROUP BY 子句中的列;这是 与 sql_mode=only_full_group_by 不兼容
foreach($groups as $group)
$query = mysqli_query($verbindung, "SELECT * FROM (SELECT *, COUNT(id) AS c FROM tags WHERE typ='" . mysqli_real_escape_string($verbindung, $group) . "' GROUP BY slug ORDER BY c DESC LIMIT 9) AS i ORDER BY i.tag ASC") or die("Error: " . mysqli_error($verbindung));
while ($row = mysqli_fetch_array($query))
$tmp_tags[] = $row;
如何更改查询以修复此错误?
【问题讨论】:
您的查询毫无意义。也许向我们展示您的预期输出是什么,我们可以为您提供帮助。很高兴看到新的 MySQL 8 only full group by message 更好地解释了正在发生的事情。 您希望查询做什么?这包括给出对输入的约束以及输出如何成为输入的函数。你以为老头子做了什么?您是否通过文档阅读了该组以了解它的实际作用?请阅读minimal reproducible example并采取行动。 了解如何操作GROUP BY
。您的查询无效,这就是它崩溃的原因。
【参考方案1】:
对于其他感兴趣的人,我解决了这个问题。我将 id 添加到 GROUP BY,所以它现在知道要选择什么。
GROUP BY slug, id
修复它。
【讨论】:
以上是关于mysql升级到8后报错,only_full_group_by报错的主要内容,如果未能解决你的问题,请参考以下文章
升级到 Capacitor v3 包 com.getcapacitor.annotation 后报错不存在
错误记录TabLayout 升级支持库版本后报错 ( support:design 支持库升级到 28.0.0 后源码发生变更 )
Sublime Text 升级后报错‘kill_previous‘问题解决