0

クエリ:

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)

スーパーマリオルイージ:インサイドストーリーはスーパーマリオルイージの前に来ることになっています。私は何が間違っているのですか?

ありがとう!

4

2 に答える 2

2

結果の順序を指定していません。その場合、返される結果の順序は未定義です。あなたの場合、明示的に追加ORDER BYしてください(私が正しく理解している場合)

select title from gamelist where match (title) against ('super mario luigi') 
 order by title DESC;
于 2011-04-13T19:44:15.267 に答える
0

定義上、SQL は順序付けを保証しません。@Pekka が言うように、結果を特定の方法で並べ替えたい場合は、それを指定する必要があります。

一般に、SQL 準拠のデータベースは、あるクエリの実行から別のクエリの実行まで同じ順序でデータを返しますが、これは、エンジンが実行から実行まで同じように動作し、SQL 仕様によって明示的に保証されていないためです。また、テーブルに新しいインデックスが適用されているか、ダンプされて再ロードされた場合、クエリで ORDER BY 句を使用しないと、データが前回とは異なる順序で返される可能性があります。

于 2011-04-13T19:51:13.600 に答える