0

mysqlで、そうする場合

mytable limit m、n から * を選択します。

テーブルが変更されていないと仮定して、常に同じ行を取得しますか (追加削除はありませんが、更新はありません)。たとえば、

select * from mytable limit 10000, 10000

さまざまなクライアント/スレッドから、一貫して同じ結果が返されますか?

4

1 に答える 1

1

セクション 20.2 <direct select statement: multiple rows> で述べられているように、 SQL-92 仕様のサブセクション「General Rules」:

4) <order by 句> が指定されていない場合、次の順序付け
   Q の行は実装依存です。

MySQLマニュアルで見つけることができるこの点に関する実装固有の最高のドキュメントは、Sorting Rowsの下にあります。

前の例で、結果行が特定の順序で表示されていないことに気付いたかもしれません。行が意味のある方法でソートされていると、多くの場合、クエリ出力を簡単に調べることができます。結果を並べ替えるには、ORDER BY句を使用します。

逆に明示的な文書がなければ、適切に明示的なORDER BY句が与えられない限り、MySQL が一貫して同じ順序でレコードを返すことに依存することはできません (私の経験では、常に一貫していますが)。

于 2012-10-14T01:37:18.343 に答える