我使用的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 doc中读过排序模式,但似乎只有在使用phpshinx客户机时才能完成。
是否有必要将它写在索引配置上,比如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/

10-11 22:23
查看更多