来自 PHP-api 的 Sphinx 平均函数

Sphinx avg function from PHP-api

我有这个 mysql table:

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

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

运行:

select avg(age) from person;

给我“35.6”

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

select avg(age) from person_idx;

很好。即使在这里我得到“35.6”。

现在进入正题。我需要 运行 来自 PHP 的查询。我正在使用 Sphinx 版本附带的 sphinxapi.php 脚本。 我查看了文档并在谷歌上搜索了很多。但是我无法从 PHP 中找到 运行 这类函数(平均、总和等)的方法。 有办法吗?

在 PHP 我有这个代码:

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

我应该把 sql 查询的 "select AVG(age)" 部分放在哪里? sphinxapi.php 有一个方法可以调用。但我看不出有什么方法可以决定 select.

在 Query() 调用之前添加

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

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