私は以下を試しています
global $wpdb;
$sum = $wpdb->get_var("select sum(first), sum(second) from table where id > 1");
各リクエストから値を取得できません。私が試してみました
echo $test->sum(first);
私はASを含むように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'];
}
1つのget_var
ステートメントから複数の行の合計を取得する方法を教えてください。不可能で、5つの異なる行の合計が必要な場合、5つの別々のget_var
ステートメントを作成する必要がありますかこれが問い合わせ速度を低下させるでしょうか?もしそうなら、それは目立つことさえありますか?
$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);
PHPでデータを使いやすくするためにAS
句も追加しました。 $sum->first_sum)
、$sum->second_sum
などを使用して、取得した数だけ結果を取得することができます。または、さらに動的なものを使用することもできます。
foreach ($sum as $k=>$v) {
echo $k.' -> '.$v.'<br>';
}