我需要根据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
答案 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