使用MySQL和PHP计算不重复的总数

使用MySQL和PHP计算不重复的总数,php,mysql,count,Php,Mysql,Count,我试图用PHP查询一个MySQL数据库,以计算没有重复项的条目总数 EXAMPLE N111US N111US N123US N345US A6-EWD A7-EEE B-18701 N123US N345AA 我希望获得唯一项的总数,但我无法开始查看从何处开始SQL查询,即返回的总数:7 SELECT COUNT(DISTINCT `column`) AS `cnt` FROM `table`; 将消除重复项 EXAMPLE N111US N111US N123US N345US A6-E

我试图用PHP查询一个MySQL数据库,以计算没有重复项的条目总数

EXAMPLE
N111US
N111US
N123US
N345US
A6-EWD
A7-EEE
B-18701
N123US
N345AA

我希望获得唯一项的总数,但我无法开始查看从何处开始SQL查询,即返回的总数:7

SELECT COUNT(DISTINCT `column`) AS `cnt` FROM `table`;
将消除重复项

EXAMPLE
N111US
N111US
N123US
N345US
A6-EWD
A7-EEE
B-18701
N123US
N345AA

然后,从php中获取
cnt
列值,就像对任何其他常规查询一样。

我喜欢上面发布的SQL答案。它们是高效的,并且在查询本身上执行。但是,如果已经将数据库中的项读取到数组中,则可以使用PHP的
array\u unique
——然后使用
count
将该结果的计数获取到数组中。例如:

<?php
$input = array("a" => "dog", "cat", "b" => "cat", "dog", "mouse");
$result = array_unique($input);
$uniqueCount = count($result);
?>


希望这有帮助。:)

在查询末尾添加
groupby column
此解决方案有效,但count distinct在性能上是一个令人讨厌的问题。php7中的数组_unique是一个blast。我将只添加使用COUNT(DISTINCT xxx,yyy)的查询持续时间,这与仅使用DISTINCT显示所有条目的查询的持续时间基本相同。实际上,上的计数(不同的xxx,yyy)稍微快一点(.312秒vs.375秒)