ホームページ >データベース >mysql チュートリアル >ソートされたMySQLクエリで最初に特定のアイテムを取得する方法は?
MySQLクエリの結果で特定のアイテムを優先順位付けする
このガイドは、mysqlテーブル(friends
およびid
列を含む)からすべてのレコードを取得する方法を示しており、特定の友人(name
5の場合)がソートされた結果で最初に表示されるようにします。 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 = 5
ORDER 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 サイトの他の関連記事を参照してください。