SQLクエリでORDERBYを使用しても、結果セットに選択されたレコードには影響しないという印象を受けました。ORDER BYは、結果セットの表示にのみ影響すると思いました。
ただし、最近、ORDER BY句を使用するまで、クエリから予期しない結果が得られていました。これは、a)ORDER BYが結果セットに含まれるレコードに影響を与える可能性があるか、b)対処する必要のある他のバグがあることを示しています。
どっち?
クエリは次のとおりです。SELECT node_id FROM users ORDER BY node_id LIMIT 100
(node_idは主キーと外部キーの両方です)。
ご覧のとおり、クエリにはLIMIT句が含まれています。ORDER BYを使用すると、上位100が選択される前にレコードが並べ替えられるようです。自然な順序に基づいて100個のレコードを選択し、node_idに従ってそれらを順序付けることを期待していました。
ORDER BYに関する情報を探しましたが、まだ見つけることができる唯一の情報は、それがプレゼンテーションにのみ影響することを示唆しています...私はMySQLを使用しています。