Mysql 如何使用另一个元键获取usermeta键的和值
我有两个元键:美国点和代理id 我需要对每个用户的代理ID相同的所有us_积分值进行汇总 以下是我尝试过的:Mysql 如何使用另一个元键获取usermeta键的和值,mysql,wordpress,Mysql,Wordpress,我有两个元键:美国点和代理id 我需要对每个用户的代理ID相同的所有us_积分值进行汇总 以下是我尝试过的: $cuser = wp_get_current_user(); $a_id = $cuser->agent_id; global $wpdb; $result = $wpdb->get_col("SELECT sum(meta_value) FROM $wpdb->usermeta WHERE meta_key = 'us_points' AND agent_id =
$cuser = wp_get_current_user(); $a_id = $cuser->agent_id;
global $wpdb;
$result = $wpdb->get_col("SELECT sum(meta_value) FROM $wpdb->usermeta WHERE meta_key = 'us_points' AND agent_id = $a_id" );
echo $result[0];
如果我删除并且agent_id=$a_id,它将显示网站中所有用户的总和,但我只需要显示agent_id中的元键值common/matching的总和
非常感谢您的帮助。试试这个,它应该以代理id元键为目标,然后在求和之前按相同的代理id值对记录进行分组
$result = $wpdb->get_col("SELECT sum(meta_value) FROM $wpdb->usermeta WHERE meta_key = 'us_points' GROUP BY meta_value HAVING 'meta_key' = 'agent_id'" );
$agent\u点
预计位于结构中:
Array
(
[0] => Array
(
[agent_id] => 1
[us_points] => 30
)
[1] => Array
(
[agent_id] => 4
[us_points] => 10
)
[2] => Array
(
[agent_id] => 4
[us_points] => 30
)
[3] => Array
(
[agent_id] => 1
[us_points] => 20
)
)
那么
在agent\u id=>us\u点对中预期$results
:
Array
(
[1] => 50
[4] => 40
)
那么,每个用户都有us_点数和代理id?你想要每个探员的总积分吗?@SanzeebAryal是的!所有用户的us_点相同或不同,但agent_id对于用户组具有公共值。与用户a一样,b、c的代理id为100,它们的us_点数变化为a=200、b=300、c=400。。因此,用他们的共同代理人id=100来总结美国点。。希望您理解。它不会工作,因为我需要指定元值。比如meta_key=$a_id。试着让meta_key='agent_id'和meta_value=$a_id仍然不起作用。。这是我的代码:global$wpdb$结果=$wpdb->get_col(“从$wpdb->usermeta中选择sum(meta_值),其中meta_键='us_points'按meta_值分组,meta_值具有'meta_键'='agent_id'和'meta_值'='10');
$results= array();
foreach( $agent_points as $values ) {
foreach( $values as $key => $value ) {
if( 'agent_id' === $key ) {
$results[ $value ] += $values['us_points'];
}
}
}
Array
(
[1] => 50
[4] => 40
)