2011-04-13 69 views
0

查询: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) 

超级马里奥路易吉:黑幕是从何超级马里奥与路易之前。我究竟做错了什么?

谢谢!

回答

2

您没有指定结果应如何排序。在这种情况下返回的结果顺序是未定义的。添加一个明确的ORDER BY,你的情况(如果我的理解对不对)

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

根据定义SQL无法保证顺序。正如@Pekka所说,如果您希望以特定方式排列结果,则必须指定该结果。

一般来说,兼容SQL的数据库将在从一个查询执行另一个相同的顺序返回数据,但那是因为发动机运转从运行同样的方式运行,并明确不是由SQL规范保证 。如果您的表格有新的索引或者重新加载&,那么如果您的查询不使用ORDER BY子句,则数据可能会以不同于上次的顺序返回。