ホームページ > データベース > mysql チュートリアル > MySQL/MariaDB サブクエリの「ORDER BY」句が機能しなくなったのはなぜですか?

MySQL/MariaDB サブクエリの「ORDER BY」句が機能しなくなったのはなぜですか?

Patricia Arquette
リリース: 2025-01-03 16:22:42
オリジナル
155 人が閲覧しました

Why Does My `ORDER BY` Clause in a MySQL/MariaDB Subquery No Longer Work?

MySQL/MariaDB: サブクエリでの ORDER BY の動作の変更

以前 MySQL 5.5 で正常に使用されていた次のクエリを考えてみましょう。

SELECT t2.Code from (select Country.Code from Country order by Country.Code desc ) AS t2;
ログイン後にコピー

MySQL の最近のバージョン (MariaDB を含む) 10.0.14) 以降、このクエリは期待どおりに結果を降順に並べ替えなくなりました。この動作の変更により、潜在的なバグに関する懸念が生じています。

しかし、調査の結果、この変更は意図的なものであり、バグとはみなされないことが確認されました。 MariaDB はこの動作を文書化しており、サブクエリは順序付けされていない行のセットを返し、サブクエリ内の ORDER BY 句は無視される可能性があることを説明しています。

望ましい順序を確保するには、ORDER BY 句を適用することをお勧めします。最も外側のクエリに追加するか、必要に応じてサブクエリに LIMIT 句を追加します。

SELECT t2.Code 
FROM (
  SELECT Country.Code FROM Country ORDER BY Country.Code DESC LIMIT 2
) AS t2;
ログイン後にコピー

この改訂されたクエリは、並べ替えと

元のバグ レポートのコメントによると、この動作の変更は MySQL 5.6 にも適用されることに注意してください。開発者はこの変更を認識し、適切な並べ替え動作を維持するためにクエリを調整する必要があります。

以上がMySQL/MariaDB サブクエリの「ORDER BY」句が機能しなくなったのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート