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

2015-01-24信息快讯网

在有group by的时候,如何统计结果记录的数量?需要的朋友可以参考下。

例如这样一个表,我想统计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 效率问题分析
Windows下部署Apache+PHP+MySQL运行环境实战
PHP 利用AJAX获取网页并输出的实现代码(Zjmainstay)
Linux下实现PHP多进程的方法分享
PhpMyAdmin出现export.php Missing parameter: what /export_type错误解决方法
php读取文件内容至字符串中,同时去除换行、空行、行首行尾空格(Zjmainstay原创)
单一index.php实现PHP任意层级文件夹遍历(Zjmainstay原创)
php读取txt文件组成SQL并插入数据库的代码(原创自Zjmainstay)
php 调试利器debug_print_backtrace()
UCenter 批量添加用户的php代码
PHP连接SQLServer2005的实现方法(附ntwdblib.dll下载)
php.ini-dist 和 php.ini-recommended 的区别介绍(方便开发与安全的朋友)
PHP sprintf() 函数的应用(定义和用法)
header中Content-Disposition的作用与使用方法
PHP中创建空文件的代码[file_put_contents vs touch]
php数组函数序列 之array_count_values() 统计数组中所有值出现的次数函数
Array of country list in PHP with Zend Framework
PHP源代码数组统计count分析
php获取mysql数据库中的所有表名的代码
mysql_num_rows VS COUNT 效率问题分析
fleaphp crud操作之find函数的使用方法
fleaphp crud操作之findByField函数的使用方法
php中利用post传递字符串重定向的实现代码
Windows下利用Gvim写PHP产生中文乱码问题解决方法
PHP中break及continue两个流程控制指令区别分析
ThinkPHP采用模块和操作分析
PHP学习之输出字符串(echo,print,printf,print_r和var_dump)
PHP的cURL库功能简介 抓取网页、POST数据及其他
PHP stream_context_create()作用和用法分析
php中突破基于HTTP_REFERER的防盗链措施(stream_context_create)
php模拟asp中的XmlHttpRequest实现http请求的代码
php expects parameter 1 to be resource, array given 错误
php cout<<的一点看法
PHP has encountered an Access Violation 错误的解决方法
©2014-2024 dbsqp.com