0
select caten as category, titleen as title from pages where pshow = 1 group by caten ASC

收到此错误:

SELECT 列表的表达式 #2 不在 GROUP BY 子句中,并且包含在功能上不依赖于 GROUP BY 子句中的列的非聚合列“mytable.pages.titleen”;这与 sql_mode=only_full_group_by 不兼容

如何修复错误?无法更改 sql_mode。

4

2 回答 2

2

我不确定,你到底想达到什么目标,但你需要纠正

GROUP BY caten ASC

GROUP BY caten ORDER BY caten ASC

注意:( ASC升序)是指特定列的值顺序。那应该跟从ORDER BY句。

于 2018-01-22T12:41:57.120 回答
0

如果你真的想只做一个分组,caten那么你的查询应该是。

SELECT caten AS category FROM pages 
WHERE pshow = 1
GROUP BY caten 
ORDER BY caten  ASC;

或者至少为每个不同的值聚合titleen使用GROUP_CONCAT 函数caten的所有值。

SELECT caten AS category, GROUP_CONCAT(DISTINCT titleen ORDER BY titleen ASC SEPARATOR ',')
AS titles FROM pages 
WHERE pshow = 1
GROUP BY caten 
ORDER BY caten  ASC;

但是如果你真的需要titleen不连接,那么你应该将它添加到 group by 子句中。

SELECT caten AS category, titleen AS titles FROM pages 
WHERE pshow = 1
GROUP BY caten, titleen 
ORDER BY caten  ASC;
于 2018-01-22T13:14:33.393 回答