sql >> データベース >  >> RDS >> Mysql

Mysql:select fromの結果の順序は、select*fromの結果の順序とは異なります。

    これは正しく、設計によるものです。並べ替えを要求しない場合、サーバーは並べ替えを気にしません (並べ替えはコストのかかる操作になる可能性があります)。適切と思われる順序で行が返されます。注文が要求されていない場合、レコードの注文方法はクエリごとに異なる可能性があります(ただし、そうなる可能性はそれほど高くありません)。

    順序は間違いなくランダムではありません。クエリから行が出てくる方法は何でもかまいません。ご覧のとおり、わずかな変更でもこの順序の変更が大幅に変わる可能性があります。この「未定義」の順序は実装に依存し、予測不可能であり、信頼すべきではありません。

    要素を並べ替える場合は、ORDER BYを使用します 条項(それがその目的です)-例:

    SELECT name FROM difficulties ORDER BY name ASC;
    

    これにより、常に名前でソートされた結果が昇順で返されます。または、主キーの最後から順に並べる場合は、次を使用します。

    SELECT name FROM difficulties ORDER BY id DESC;
    

    関数で並べ替えることもできます-実際に必要な場合 ランダムな順序で、これを実行します(注意:大きなテーブルでのひどいパフォーマンス):

    SELECT name FROM difficulties ORDER BY RAND();
    

    詳細については、このチュートリアルを参照してください およびドキュメント 。



    1. MAX(DATE)を使用したGROUP BY

    2. PostgreSQLのクロステーブル制約

    3. T-SQLを使用してSQLServerでデータベースの互換性レベルを確認する方法

    4. MySQLFULLTEXTは複数のフィールドでは機能しません