2017-07-30 57 views
0

我的表中有兩列,「日期」和「描述」,我需要包含「描述」中的某個單詞和按日期遞減的行的結果,所以我添加fullindex和運行「alter table order by date decreasing」第一,然後運行以下SQL:在MySQL中修改FTS的訂單類型5.6 innodb表

SELECT date FROM articles WHERE MATCH (description) AGAINST ('+"big" +"light"' IN BOOLEAN MODE); 

如果表的MyISAM,結果是爲了通過「日期」降低,但如果該表是InnoDB的,其結果是自動按照的順序對行進行排序,從而減少相關性

我想使用InnoDB表,讓結果順序由「日期」自動減少而不是減少相關性,我該怎麼辦?

Plus:將代碼「order by date desc」添加到SQL是可行的,但它會花費更多的時間,因爲我的tabel有太多的低點。

謝謝。

湯米

+0

'alter table order by'是MyISAM的「特性」。它不適用於InnoDB。獲得類似的唯一方法是在主鍵上使用'date'。不是我會建議。或者,像其他人那樣做,並將'order by'添加到您的查詢中。比較速度時,請注意,對錶格(例如插入)的每次更改都會破壞訂單,所以每次運行查詢時都必須執行「alter table」,以確保訂單仍然有效。所以在比較執行時間時,必須包含'alter table order by'。 – Solarflare

回答

0

如果你想以某種方式排序的結果,你必須添加ORDER BY條款。一旦刪除或更新一行,對默認操作的任何依賴都會立即燒燬您。

如果您需要進一步討論,請提供完整的查詢,再加上SHOW CREATE TABLE