我使用的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_len
,enable_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/