3

基本的に、接頭辞付きの文字列を含めることができるフィールドがあります。

word1
bla2
ttt3
word4 
[...]

たとえば、ttt3最初にSQLを注文し、次に他のすべての文字列を注文する必要があります。
私は運がなかったのでこれを試しました

ORDER BY FIELD (myField,'ttt3',*)

助言がありますか?

4

2 に答える 2

6

ORDER BY CASEコンストラクトを使用します。抽出する値には 0 を強制し、それ以外の値には 1 を強制するため、0 が最初にソートされます。コンマ区切りの列と同じようにリストに収まるORDER BYので、後で並べ替え列を追加できます。

ORDER BY
  CASE WHEN myField = 'ttt3' THEN 0 ELSE 1 END,
  myField,
  other_order_col,
  other_order_col2
于 2012-04-27T11:30:37.730 に答える
2
ORDER BY myField = 'ttt3' DESC

またはより一般的でベンダーに依存しない:

ORDER BY CASE WHEN myField = 'ttt3' THEN 0 ELSE 1 END
于 2012-04-27T11:30:27.690 に答える