我使用这个库,它基本上只是一个查询生成器。
以下查询:
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文档中排序模式的文章,但似乎只有当我使用PHP Sphinx客户端时才能做到这一点。
是否可以将其写在索引配置上,例如min_prefix_len
、enable_star
等?
还是直接从查询中?
这似乎是对ORDER BY
在SQL/MySQL中如何工作的误解。您需要的是:
SELECT * FROM car_search ORDER BY car_id ASC, car_model_name ASC LIMIT 2;