来自PHP-api的Sphinx avg功能

时间:2015-07-17 09:39:03

标签: php mysql sphinx

我有这个mysql表:

CREATE TABLE person (id INT(6) AUTO_INCREMENT PRIMARY KEY,name    VARCHAR(30) NOT NULL,age int(4) NOT NULL);

我运行这些插入:     INSERT INTO VALUES(null,' one',42);     INSERT INTO VALUES(null,' two',49);     INSERT INTO VALUES(null,' three',16);

运行:

select avg(age) from person;

给了我" 35.6"

然后我在Sphinx中索引这些表。现在我想在Sphinx中运行或多或少与我在MySQL中运行的查询相同的查询。 从命令行发出此命令:

select avg(age) from person_idx;

精细。即使在这里,我也会得到" 35.6"。

现在问题。我需要从PHP运行此查询。我正在使用Sphinx-release附带的sphinxapi.php脚本。 我查看了文档并搜索了很多内容。但我找不到从PHP运行这些函数(avg,sum等)的方法。 有没有办法做到这一点?

在PHP中我有这段代码:

require('sphinxapi.php');
$client = new SphinxClient();
$res = $client->Query('', 'person_idx');   

我在哪里放"选择AVG(年龄)"部分sql查询? sphinxapi.php有一个你可以调用的方法。但我看不出决定选择什么的方法。

1 个答案:

答案 0 :(得分:1)

在Query()调用之前添加

$client->setSelect("AVG(age) AS avg_age");

setSelect大致相当于sphinxQL的'SELECT ...'部分。但一般来说,您需要使用AS来使用所有功能。