2

基本的に単なるクエリビルダーであるこのライブラリを使用します。

次のクエリ:

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 DESCcar_id ASC、結果が MySQL とほぼ同じように順序付けられることを期待してのことです。Sphinx が最初のクエリを除いて注文クエリを無視しているようです。

ただし、返される結果は両方のクエリでまったく同じです。

Sphinx docで並べ替えモードについて読んだことがありますが、PHP sphinx クライアントを使用する場合にのみ実行できるようです。

min_prefix_lenおそらく 、 などのように、代わりにインデックス構成に書き込む方法はありますenable_starか?

それともクエリから直接?

4

1 に答える 1

1

ORDER BYSQL/MySQL での動作について誤解しているようです。必要なものは次のとおりです。

SELECT * FROM car_search ORDER BY car_id ASC, car_model_name ASC LIMIT 2;
于 2015-12-13T18:44:16.643 に答える