ホームページ > php教程 > php手册 > GROUP BY COUNT(*) DISTINCT を使用する場合のレコード数のカウント方法

GROUP BY COUNT(*) DISTINCT を使用する場合のレコード数のカウント方法

WBOY
リリース: 2016-06-13 12:10:10
オリジナル
1006 人が閲覧しました

たとえば、次のようなテーブルで、メールアドレスとパスワードが異なるレコードの数をカウントしたいとします。

コードをコピー コードは次のとおりです:


CREATE TABLE IF NOT EXISTS `test_users` (
`email_id` int(11) unsigned NOT NULL auto_increment,
`email` char(100) NOT NULL,
`パスワード` 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', '5294cef9f1bf1858ce9d7fdb62240) 546分),
(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


明らかに、これは私が望む結果ではありません。カウントされるのは、同じメールアドレスとパスワードを持つレコードの数の合計です。

コードをコピーします コードは次のとおりです:


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


もちろん、php では mysql_num_rows を使用してレコード数を取得することもできますが、これは効率的ではありません。
mysql_num_rows VS COUNT の効率性の問題の分析を参照してください。
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート