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。
我不确定,你到底想达到什么目标,但你需要纠正
GROUP BY caten ASC
至
GROUP BY caten ORDER BY caten ASC
注意:( ASC
升序)是指特定列的值顺序。那应该跟从ORDER BY
句。
如果你真的想只做一个分组,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;