SphinxQL按多个字段排序

时间:2015-12-13 13:02:54

标签: 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等?

或直接来自查询?

1 个答案:

答案 0 :(得分:1)

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

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