可能なすべての値を完全に並べ替える場合:
SELECT id, name, priority
FROM mytable
ORDER BY FIELD(name, "core", "board", "other")
「コア」が最初であり、他の値は重要ではないことだけを気にする場合:
SELECT id, name, priority
FROM mytable
ORDER BY FIELD(name, "core") DESC
最初に「コア」で並べ替え、他のフィールドを通常の並べ替え順序で並べ替える場合:
SELECT id, name, priority
FROM mytable
ORDER BY FIELD(name, "core") DESC, priority
ただし、ここにはいくつかの注意点があります:
まず、これはmysqlのみの機能であると確信しています。質問にはmysqlのタグが付けられていますが、わかりません。
次に、 FIELD()
の方法に注意してください。 動作:1ベースのインデックスを返します 値の-FIELD(priority、 "core")
の場合 、「core」が値の場合は1を返します。フィールドの値がリストにない場合は、ゼロを返します。 。これがDESC
の理由です 可能なすべての値を指定しない限り、必要です。