SphinxQL 按多个字段排序

SphinxQL Order By Multiple Field

我使用 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;