php - SphinxQL 按多个字段排序

标签 php mysql sphinx sphinxql

我使用 this library这基本上只是一个查询构建器。

以下查询:

SELECT * FROM car_search ORDER BY car_model_name ASC, car_id DESC LIMIT 2;

导致:

+------+----------------+---------------------+
| id   | car_model_name |              car_id | 
+------+----------------+---------------------+
|   33 |       Audi     |               17461 |
|   20 |       Bentley  |               17439 |
+------+----------------+---------------------+

现在,如果我更改查询顺序,例如,

SELECT * FROM car_search ORDER BY car_model_name ASC, car_id ASC LIMIT 2;

可以看出,我将顺序从 car_id DESC 更改为 car_id ASC,希望结果的顺序与 MySQL 的顺序非常相似。这就像 Sphinx 忽略了第一个订单查询之外的订单查询。

但是两次查询返回的结果完全一样。

我在 Sphinx doc 中读到过有关排序模式的信息, 但似乎只有使用 PHP sphinx 客户端才能做到这一点。

有没有办法把它写在索引配置上,比如 min_prefix_lenenable_star 等?

还是直接从查询?

最佳答案

这似乎是对 ORDER BY 在 SQL/MySQL 中的工作方式的误解。你需要的是:

SELECT * FROM car_search ORDER BY car_id ASC, car_model_name ASC LIMIT 2;

关于php - SphinxQL 按多个字段排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34251359/

相关文章:

mysql - 我似乎无法在同一个查询中使用 SUM(*) 和 MAX(*)

mysql - 比较数据库或本地两个表之间的文本字符串

java - 如何使用 Sphinx 从 JSON 格式的文件中搜索?

mysql - 查询中函数的 IN 运算符的替代或替换 IN 运算符?

mysql - SSRS 问题匹配日期与参数

lucene - 选择具有自定义排名功能、空间搜索的独立搜索服务器

php - 如果未选择任何选项,Laravel 将忽略选择输入验证

PHPExcel 不计算公式

php - ie6 和 ie7 中 float div 的问题

php - 在 php composer 项目中存储配置的最佳方式?