ホームページ >データベース >mysql チュートリアル >MariaDB のサブクエリにおける ORDER BY の処理はどのように変わりましたか? 推奨される解決策は何ですか?

MariaDB のサブクエリにおける ORDER BY の処理はどのように変わりましたか? 推奨される解決策は何ですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-31 15:38:16744ブラウズ

How Has MariaDB's Handling of ORDER BY in Subqueries Changed, and What's the Recommended Solution?

MySQL/MariaDB クエリ最適化の変更: サブクエリの Order By

MySQL 5.5 以前でクエリを実行すると、サブクエリの ORDER BY 句が適用されました。最も外側のクエリの SELECT の前。ただし、MariaDB 10.0.14 では、この動作が変更され、LIMIT が存在しない場合、サブクエリの ORDER BY 句は無視されるようになりました。

これに対処するために、MariaDB は、最も外側のクエリに ORDER BY 句を適用するか、サブクエリの LIMIT。

文書化動作

MariaDB のドキュメントには、FROM 句のサブクエリは順序付けされていない行のセットであり、このコンテキストでは ORDER BY 句は通常無視されると記載されています。ドキュメントからの次の引用では、詳細が説明されています:

「「テーブル」 (および FROM 句のサブクエリも) は、SQL 標準によれば、順序付けされていない行のセットです。テーブル内の行 (またはこれは、オプティマイザが指定した ORDER BY 句を無視できる理由です。実際、SQL 標準では ORDER さえも許可されていません。このサブクエリに BY 句を含めることができます (ORDER BY ... LIMIT ... は順序だけでなく結果、つまり行のセットを変更するため、これを許可します)。

したがって、次のようにすることをお勧めします。サブクエリを順序なしセットとして扱い、最も外側のクエリに ORDER BY 句を配置するか、必要に応じて LIMIT を使用します。

以上がMariaDB のサブクエリにおける ORDER BY の処理はどのように変わりましたか? 推奨される解決策は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。