例如这样一个表,我想统计email和passwords都不相同的记录的条数 <div class="codetitle"><a style="CURSOR: pointer" data="47343" class="copybut" id="copybut47343" onclick="doCopy('code47343')"> 代码如下:<div class="codebody" id="code47343"> 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', (4,”), (5,”); 通常我们的做法是这样 <div class="codetitle"><a style="CURSOR: pointer" data="39057" class="copybut" id="copybut39057" onclick="doCopy('code39057')"> 代码如下:<div class="codebody" id="code39057"> SELECT COUNT() FROM test_users WHERE 1 = 1 GROUP BY email,passwords 这样的结果是什么呢? <div class="codetitle"><a style="CURSOR: pointer" data="17030" class="copybut" id="copybut17030" onclick="doCopy('code17030')"> 代码如下:<div class="codebody" id="code17030"> COUNT() 1 2 1 1 显然这不是我要的结果,这样统计出来的是相同email和passwords的各个记录数量之和,下面这样就可以了 <div class="codetitle"><a style="CURSOR: pointer" data="56551" class="copybut" id="copybut56551" onclick="doCopy('code56551')"> 代码如下:<div class="codebody" id="code56551"> SELECT COUNT(DISTINCT email,passwords) FROM test_users WHERE 1 = 1 当然在php里面也可以用mysql_num_rows来获取记录的条数,但是这样的效率不高,可以参考这篇文章 mysql_num_rows VS COUNT 效率问题分析 (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|