在MySQL中,如果使用GROUP BY
但<{1}}未指定
我使用以下查询继承了代码:
ORDER BY
(实际上SELECT col1, COUNT(col1)
FROM table
GROUP BY col1
语句可能比SELECT
语句复杂得多,涉及JOIN
等等,但让我们从基本原则开始。)注意没有{{ 1}}。
在SQL Server BOL中,我被告知:
GROUP BY子句不对结果集进行排序。使用ORDER BY 用于对结果集进行排序的子句。
我一直无法找到关于MySQL ORDER BY
是否承诺单独从GROUP BY
做出特定排序的陈述?如果可以提供MySQL参考来备份任何最受欢迎的答案。
答案 0 :(得分:1)
来自manual:
如果使用GROUP BY,则输出行将根据GROUP BY进行排序 列,就好像您有相同列的ORDER BY一样。避免 对GROUP BY生成的排序开销,添加ORDER BY NULL:
SELECT a, COUNT(b) FROM test_table GROUP BY a ORDER BY NULL;
依赖于隐式GROUP BY排序(即在缺席时进行排序) ASC或DESC指示符)已弃用。生成给定的排序 对于GROUP BY列或使用明确的ASC或DESC指示符 提供ORDER BY子句。