MySQL查询顺序关闭1



查询:

select title from gamelist where match (title) against ('super mario luigi');

的回报:

+-----------------------------------+
| title                             |
+-----------------------------------+
| Super Mario and Luigi             |
| Super Mario Luigi: Inside Story   |
| New Super Mario Bros.             |
| Mario and Luigi: Partners In Time |
| Luigi: Mansion                    |
+-----------------------------------+
5 rows in set (0.00 sec)

《超级马里奥路易吉:内幕故事》应该先于《超级马里奥和路易吉》。我做错了什么?

谢谢!

您没有指定结果应该如何排序。在这种情况下,返回的结果顺序未定义。添加一个显式的ORDER BY,在您的情况下(如果我理解正确的话)

select title from gamelist where match (title) against ('super mario luigi') 
 order by title DESC;

根据定义,SQL不保证排序。正如@Pekka所说,如果你想让你的结果以特定的方式排序,你必须指定。

一般来说,SQL兼容的数据库从一个查询执行到另一个查询执行将以相同的顺序返回数据,但这是因为引擎以相同的方式运行,并且SQL规范显式不保证。如果你的表应用了新索引或者被抛弃了&如果您的查询没有使用order BY子句,那么重新加载后的数据很可能会以与上次不同的顺序返回。

相关内容

  • 没有找到相关文章

最新更新