$ wpdb& SQL Count仅显示第一个结果

时间:2014-08-11 08:58:35

标签: mysql sql wpdb

我需要根据count()从数据库中获取最多注册的名称。

我在数据库中有一个包含这些列和数据的表

id    |    name    |    code
1          Craig        4567
2          John         4567
3          Liam         4568
4          sam          4569
5          sam          4569

我需要做的是计算名称字段,以便显示最常出现的名称。在这种情况下,它的山姆。

我试过了:

$ck_af = $wpdb->get_results( 
             $wpdb->prepare("SELECT * FROM wp_code_log ORDER BY CONVERT(COUNT(name), UNSIGNED INTEGER) DESC LIMIT 1")
         );

谁能看到发生了什么?

它正在输掉克雷格。

我需要它输出哪个名称最常存储,以及之后的代码,所以它应该是:

sam : 4569

2 个答案:

答案 0 :(得分:1)

您需要选择名称,然后按名称排序。这将使所有相同的实例显示为一个结果。然后通过计算有多少结果来订购。像这样:

global $wpdb;
$ck_af = $wpdb->get_results( $wpdb->prepare("SELECT name FROM wp_code_log GROUP BY name ORDER BY count(*) DESC LIMIT 1"));

答案 1 :(得分:0)

我认为COUNT(name)会计算数据库中的所有名称。因此对于它给出的每条记录5.您必须为要计算的名称定义条件:

SELECT * FROM wp_code_log AS t1
ORDER BY CONVERT(SELECT COUNT(name) FROM wp_code_log AS t2 WHERE t2.name = t1.name, UNSIGNED INTEGER) DESC LIMIT ONE