在 MySQL 的 WHERE 子句中有效使用 COUNT(*)
确定列的不同值的计数是否超过某个阈值是常见的MySQL 中的任务。虽然在 WHERE 子句中使用 COUNT(*) 来过滤结果似乎很简单,但这种方法可能效率低下。
要避免这种资源密集型方法,请考虑使用以下替代语法:
<code class="sql">SELECT DISTINCT gid FROM `gd` GROUP BY gid HAVING COUNT(*) > 10 ORDER BY lastupdated DESC</code>
通过使用 GROUP BY 子句,MySQL 按不同的 gid 值对行进行分组。然后,HAVING 子句对每个组应用 COUNT(*) 聚合函数,过滤掉计数小于 10 的组。最后,ORDER BY 子句根据时间戳列 lastupdated 对结果进行降序排序。
这种方法更有效,因为它只对每个不同值执行一次聚合,而不是对每行执行一次。此优化可以显着提高具有大量行的表的性能。
以上是如何高效地统计 MySQL WHERE 子句中的不同值?的详细内容。更多信息请关注PHP中文网其他相关文章!