2017-07-30 28 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