PHP MariaDB PDO 计数重复值



也许是一个愚蠢的问题,但我找不到任何东西。我知道你可以用查询做计数和一些基本的数学运算。

有没有办法使数据库计数并返回出现次数最多或最低的结果?

假设您在数据库中拥有库的所有页面,并且您想知道使用的前 5 个字符或可能最少使用的字符。

我想最简单的例子是彩票。假设您有一张过去彩票结果的表格。假设您想返回前 10 个最开奖号码的列表。假设数字的范围可以从 1 到 100。

运行以下查询 100 次,然后运行一些 php 对数据进行排序不是很有效率。

SELECT COUNT(*) FROM mytable WHERE ball=1

当然,必须有一种方法可以返回重复最多的数据的计数。

也许我想太多了。无论如何,感谢您在此事上的任何帮助。

这就是所谓的分组,group by子句会让你这样做,确保你不仅要拉出计数,还要拉出你正在计数的东西,在这种情况下ball

获取最少的出现次数:

SELECT ball, COUNT(*) FROM mytable GROUP BY ball ORDER BY ball ASC limit 1;

获取最高出现次数:

SELECT ball, COUNT(*) FROM mytable GROUP BY ball ORDER BY ball DESC limit 1;

如果您希望它们都集中在一个结果中,则可以使用联合/联合所有:

(SELECT ball, COUNT(*) FROM mytable GROUP BY ball ORDER BY ball ASC limit 1)
UNION ALL
(SELECT ball, COUNT(*) FROM mytable GROUP BY ball ORDER BY ball DESC limit 1);

你可以简单地使用

SELECT column, COUNT(*) 
FROM mytable 
GROUP BY column_name

这将计算特定column_name的所有现有条目 您应该在COUNT(*)之前使用列,以便您知道什么具有这么多值。

我希望这有帮助!

最新更新