来自 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
才能使用所有功能。
我有这个 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
才能使用所有功能。