ホームページ >データベース >mysql チュートリアル >ソートされたMySQLクエリで最初に特定のアイテムを取得する方法は?

ソートされたMySQLクエリで最初に特定のアイテムを取得する方法は?

DDD
DDDオリジナル
2025-01-24 09:22:10287ブラウズ

How to Retrieve a Specific Item First in a Sorted MySQL Query?

MySQLクエリの結果で特定のアイテムを優先順位付けする

このガイドは、mysql

テーブル(friendsおよびid列を含む)からすべてのレコードを取得する方法を示しており、特定の友人(name5の場合)がソートされた結果で最初に表示されるようにします。 MySQLバージョン5.1.x. idに焦点を当てます

最も効率的なアプローチでは、条件付き

句:ORDER BYを使用します

このクエリは、
<code class="language-sql">SELECT id, name
FROM friends
ORDER BY CASE WHEN id = 5 THEN 0 ELSE 1 END, id ASC;</code>
ステートメントで0の値を割り当てることにより、

>を優先します。他のすべてのIDは、1の値を受け取り、上部にid = 5を効果的に配置します。 セカンダリCASEは、残りの結果をidの昇順で並べ替えます。 id = 5ORDER BY id ASC代替(効率が低い)メソッド:

ステートメントメソッドよりも効率が低いですが、

を使用して同様の結果を達成できます。 CASE UNION ALLこのアプローチは最初に特定のIDを選択し、次に他のすべてのIDを選択し、最後に結合された結果をソートします。 ただし、この方法は一般に、特に大きなデータセットを使用すると、

ステートメントアプローチよりも遅くなります。
<code class="language-sql">SELECT id, name
FROM friends
WHERE id = 5
UNION ALL
SELECT id, name
FROM friends
WHERE id != 5
ORDER BY id ASC;</code>
最適なパフォーマンスと読みやすさのための

ステートメントメソッドを選択します。 単一のクエリ内でソート要件に直接対処します。

以上がソートされたMySQLクエリで最初に特定のアイテムを取得する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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