使用一条get_var语句选择两个SUM

时间:2014-05-18 作者:brandon-estrella-dev

我正在尝试以下方法

global $wpdb;
$sum = $wpdb->get_var("select sum(first), sum(second) from table where id > 1");
我无法从每个请求中获取值。我试过了

echo $test->sum(first);
我尝试将sql语句更改为包含为

 $sum = $wpdb->get_var("select sum(first) as firstRequest, sum(second) as secondRequestfrom table where id > 1");

echo $test[\'firstRequest\'];
我试过foreach 陈述

foreach($test as $tester){
  echo $tester[\'sum(first\')];
}
以及

foreach($test as $tester){
  echo $tester[\'firstRequest\'];
}
如何从单个get_var 陈述如果不可能,并且我需要5个不同行的总和,我是否必须创建5个单独的get_var 声明?这会降低查询速度吗?如果会的话,这是否很明显?

1 个回复
最合适的回答,由SO网友:s_ha_dum 整理而成

$wpdb->get_var 将完全按照名称所示执行--返回单个值。因此:

$sum = $wpdb->get_var("select sum(first), sum(second) from sums_test where id > 1");
var_dump($sum);
将返回的结果sum(first). 剩下的结果丢失了(虽然我相信是缓存的)。

您想要的方法是get_row 将返回完整的一行结果。

$sum = $wpdb->get_row("select sum(first) as first_sum, sum(second) as second_sum from sums_test where id > 1");
var_dump($sum);
我已添加AS 子句,以便更容易在PHP中使用数据。现在,您可以使用$sum->first_sum), $sum->second_sum, 诸如此类,只要您检索到,或者您可以使用更具动态性的内容,如:

foreach ($sum as $k=>$v) {
  echo $k.\' -> \'.$v.\'<br>\';
}

结束

相关推荐

插件选项页面中的jQuery无法正常工作吗?

我已经创建了自己的插件,它附带了一个自定义脚本。我在正确的庄园中添加了如下内容:add_action(\'admin_enqueue_scripts\', \'add_search_script\'); function add_search_script() { wp_register_script(\'search\', plugins_url(\'search.js\', __FILE__) ); wp_enqueue_script(\'search\');