回答

收藏

为什么可以用?GROUP BY时不使用DISTINCT?

技术问答 技术问答 218 人阅读 | 0 人回复 | 2023-09-14

根据MySQL性能Wiki的提示:
! U6 K. ^5 X# D3 `拥有或可使用GROUP BY不要使用时间DISTINCT。/ J; v3 D, K) k3 a% s
有人可以发布,可以使用GROUP BY代替DISTINCT的查询示例吗?
8 F7 ^. A3 `" ~2 L                                                                9 H' t' y6 ]7 V7 F7 o1 r8 M
    解决方案:                                                               
! i2 Q3 v8 v9 ?' h) M- b* B; f$ E                                                                假如你知道结果中的两列总是直接相关的,那么这样做会比较慢:9 k: v$ \% h; W* ~8 I
SELECT DISTINCT CustomerId,CustomerName FROM (...)比这个:. T. c6 u$ s5 N! O% q, l
SELECT CustomerId,CustomerName FROM (...) GROUP BY CustomerId因为在第二种情况下,它只需要比较ID,但在第一种情况下,它必须比较两个字段。MySQL独特的技能。它不能与其他数据库一起使用。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则