• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

使用GROUP BY的时候如何统计记录条数 COUNT(*) DISTINCT_php技巧

php 搞代码 4年前 (2022-01-26) 20次浏览 已收录 0个评论

例如这样一个表,我想统计email和passwords都不相同的记录的条数

 <BR>CREATE TABLE IF NOT EXISTS `test_users` ( <BR>`email_id` int(11) unsigned NOT NULL auto_increment, <BR>`email` char(100) NOT NULL, <BR>`passwords` char(64) NOT NULL, <BR>PRIMARY KEY (`email_id`) <BR>) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=6 ; <BR>


INSERT INTO `test_users` (`email_id`, `email`, `passwords`) VALUES
(1, ‘[email protected]’, ‘1e48c4420b7073bc11916c6c1de226bb’),
(2, ‘[email protected]’, ‘5294cef9f1bf1858ce9d7fdb62240546′),
(3, ‘[email protected]’, ‘5294cef9f1bf1858ce9d7fdb62240546′),
(4, ‘[email protected]’, ”),
(5, ‘[email protected]’, ”);

通常我们的做法是这样

 <BR>SELECT COUNT(*) FROM test_users WHERE 1 = 1 GROUP BY email,passwords <BR>


这样的结果是什么呢?

 <BR>COUNT(*) <BR>1 <BR>2 <BR>1 <BR>1 <BR>


显然这不是我要的结果,这样统计出来的是相同email和passwords的各个记录数量之和,下面这样就可以了

 <BR>SELECT COUNT(DISTINCT email,passwords) FROM `test_users` WHERE 1 = 1 <BR>


当然在php里面也可以用mysql_num_rows来获取记录的条数,但是这样的效率不高,可以参考这篇文章
my

4本文¥来源gao!%daima.com搞$代*!码$网9

搞代gaodaima码

sql_num_rows VS COUNT 效率问题分析


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:使用GROUP BY的时候如何统计记录条数 COUNT(*) DISTINCT_php技巧

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址