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


Posted in PHP onApril 23, 2011

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

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

INSERT INTO `test_users` (`email_id`, `email`, `passwords`) VALUES
(1, ‘jims@gmail.com', ‘1e48c4420b7073bc11916c6c1de226bb'),
(2, ‘jims@yahoo.com.cn', ‘5294cef9f1bf1858ce9d7fdb62240546′),
(3, ‘default@gmail.com', ‘5294cef9f1bf1858ce9d7fdb62240546′),
(4, ‘jims@gmail.com', ”),
(5, ‘jims@gmail.com', ”);

通常我们的做法是这样

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

这样的结果是什么呢?
COUNT(*) 
1 
2 
1 
1

显然这不是我要的结果,这样统计出来的是相同email和passwords的各个记录数量之和,下面这样就可以了
SELECT COUNT(DISTINCT email,passwords) FROM `test_users` WHERE 1 = 1

当然在php里面也可以用mysql_num_rows来获取记录的条数,但是这样的效率不高,可以参考这篇文章
mysql_num_rows VS COUNT 效率问题分析
PHP 相关文章推荐
php str_pad 函数使用详解
Jan 13 PHP
破解图片防盗链的代码(asp/php)测试通过
Jul 02 PHP
探讨GDFONTPATH能否被winxp下的php支持
Jun 21 PHP
phpmyadmin出现Cannot start session without errors问题解决方法
Aug 14 PHP
php使用pdo连接mssql server数据库实例
Dec 25 PHP
Thinkphp连表查询及数据导出方法示例
Oct 15 PHP
Yii2实现多域名跨域同步登录退出
Feb 04 PHP
Yii2学习笔记之汉化yii设置表单的描述(属性标签attributeLabels)
Feb 07 PHP
PHP 的Opcache加速的使用方法
Dec 29 PHP
PHP封装的验证码工具类定义与用法示例
Aug 22 PHP
PHP实现财务审核通过后返现金额到客户的功能
Jul 04 PHP
Thinkphp5框架实现图片、音频和视频文件的上传功能详解
Aug 27 PHP
mysql_num_rows VS COUNT 效率问题分析
Apr 23 #PHP
fleaphp rolesNameField bug解决方法
Apr 23 #PHP
FirePHP 推荐一款PHP调试工具
Apr 23 #PHP
在smarty模板中使用PHP函数的方法
Apr 23 #PHP
对text数据类型不支持代码页转换 从: 1252 到: 936
Apr 23 #PHP
fleaphp crud操作之find函数的使用方法
Apr 23 #PHP
fleaphp crud操作之findByField函数的使用方法
Apr 23 #PHP
You might like
提高define性能的php扩展hidef的安装和使用
2011/06/14 PHP
php解决抢购秒杀抽奖等大流量并发入库导致的库存负数的问题
2014/06/19 PHP
CodeIgniter多语言实现方法详解
2016/01/20 PHP
Yii2创建多界面主题(Theme)的方法
2016/10/08 PHP
PHP实现SMTP邮件的发送实例
2018/09/27 PHP
JavaScript 学习小结(适合新手参考)
2009/07/30 Javascript
JS 加入收藏夹的代码(主流浏览器通用)
2013/05/13 Javascript
javascript 表格内容排序 简单操作示例代码
2014/01/03 Javascript
Chrome扩展页面动态绑定JS事件提示错误
2014/02/11 Javascript
jquery实现点击文字可编辑并修改保存至数据库
2014/04/15 Javascript
JavaScript字符串对象fromCharCode方法入门实例(用于把Unicode值转换为字符串)
2014/10/17 Javascript
JS组件Bootstrap导航条使用方法详解
2016/04/29 Javascript
jQueryUI 拖放排序遇到滚动条时有可能无法执行排序的小bug及解决方案
2016/12/19 Javascript
微信小程序 input输入框详解及简单实例
2017/01/10 Javascript
Express + Node.js实现登录拦截器的实例代码
2017/07/01 Javascript
vue-cli + sass 的正确打开方式图文详解
2017/10/27 Javascript
Vue实现本地购物车功能
2018/12/05 Javascript
vue实现父子组件之间的通信以及兄弟组件的通信功能示例
2019/01/29 Javascript
Nodejs核心模块之net和http的使用详解
2019/04/02 NodeJs
详解vue或uni-app的跨域问题解决方案
2020/02/21 Javascript
[42:20]Winstrike vs VGJ.S 2018国际邀请赛淘汰赛BO3 第二场 8.23
2018/08/24 DOTA
Python 正则表达式的高级用法
2016/12/04 Python
python 分离文件名和路径以及分离文件名和后缀的方法
2018/10/21 Python
python实现RabbitMQ的消息队列的示例代码
2018/11/08 Python
如何使用repr调试python程序
2020/02/28 Python
基于pycharm实现批量修改变量名
2020/06/02 Python
CSS3 简单又实用的5个属性
2010/03/04 HTML / CSS
HTML5实现音频和视频嵌入的方法
2018/08/22 HTML / CSS
诗普兰迪官方网站:Splendid
2018/09/18 全球购物
Nike澳大利亚官网:Nike.com (AU)
2019/06/03 全球购物
到底Java是如何传递参数的?是by value或by reference?
2012/07/13 面试题
2014年三八妇女节活动方案
2014/02/28 职场文书
师德师风自我剖析材料
2014/09/27 职场文书
爱心捐款感谢信
2015/01/20 职场文书
MySQL 数据丢失排查案例
2021/05/08 MySQL
在windows server 2012 r2中安装mysql的详细步骤
2022/07/23 Servers