0

フィールド 1、フィールド 2、フィールド 3 の 3 つのフィールドを持つテーブルがあります。field2 の値は 0 または 1 です。

field2 の値が 1 であるすべての行が常に最初に表示され、field3 で配置され、残りのデータも field3 で配置されるように、field1 をフェッチしようとしています。

私の調査では、2 つのフィールドで注文できることがわかりました。たとえば、「フィールド 2 デスクで注文、フィールド 3 で注文」と言いますが、実際には期待した結果が得られません。何か案が?

4

2 に答える 2

2

MySQL には、1 つの小さな変更が必要です。

ORDER BY field2 = 1 DESC, field3

または標準 SQL の場合:

ORDER BY CASE WHEN field2 = 1 THEN 1 ELSE 0 END DESC, field3
于 2012-08-25T03:18:44.890 に答える
2

これを試して:

order by 
case when field2=1 then 0 else 1 end,
     field3
于 2012-08-25T03:22:17.383 に答える