MySQL データの並べ替え: 特定のフィールド値を優先する
MySQL では、特定のフィールド値に基づいて結果セットを並べ替え、特定の値に優先順位を付ける必要がある場合は、FIELD
関数を使用できます。この関数を使用すると、並べ替え結果に値が表示される順序を指定できます。
たとえば、次の表を考えてみましょう:
id | name | priority |
---|---|---|
1 | core | 10 |
2 | core | 9 |
3 | other | 8 |
4 | board | 7 |
5 | board | 6 |
6 | core | 4 |
「name」フィールドが「core」と等しい行を優先しながら行を優先順位で並べ替えるには、次のクエリを使用できます:
<code class="language-sql">SELECT id, name, priority FROM mytable ORDER BY FIELD(name, "core", "board", "other")</code>
このクエリは、優先度の値に関係なく、「name」が「core」に設定された行が最初に表示されるようにします。次に「name」が「board」に設定された行が続き、さらに「name」が「other」に設定された行が続きます。
「コア」行の優先順位のみを考慮し、他の値の順序を気にしない場合は、次のクエリを使用できることに注意してください:
<code class="language-sql">SELECT id, name, priority FROM mytable ORDER BY FIELD(name, "core") DESC</code>
この場合、「コア」行が最初に表示され、他の値は降順に並べ替えられます。
最後に、最初に「コア」で並べ替えてから、通常の並べ替え順序を他のフィールドに適用する場合は、次のクエリを使用できます:
<code class="language-sql">SELECT id, name, priority FROM mytable ORDER BY FIELD(name, "core") DESC, priority</code>
FIELD
関数は MySQL 固有であることに注意してください。さらに、値のゼロから始まるインデックスを返します。指定された値がリストにない場合は、0 が返されます。したがって、FIELD
関数を使用して MySQL でデータを並べ替える場合は、これらの考慮事項を考慮することが重要です。
以上がMySQL でデータを並べ替えるときに、特定のフィールド値に優先順位を付けるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。