質問する

WBOY
WBOYオリジナル
2016-06-23 13:46:28816ブラウズ

テーブルには id、create_at、status の 3 つのフィールドがあります [id は番号、自動インクリメント、create_at は作成時間、status はステータス]

私がやりたいのは、ステータスで昇順に並べ替えることです。ステータス値が 2 の場合は、create_at を降順に押します。ステータス値が 3 の場合は、create_at を昇順に押します。

ネットで検索してcase whenの書き方を見ました。自分で試してみましたがうまくいきませんでした。専門家に助けを求めたいと思います。ありがとうございました。


ディスカッションに返信(解決策)

クエリされた注文を変数として書き込み、ステータスに応じて注文に値を割り当てることができます

クエリされた注文を変数として書き込み、値を割り当てることができます状況に応じて順番に



そこで質問です。 さて、叱り方はどのように書きますか?


クエリの順序を変数として記述し、ステータスに応じて順序に値を割り当てることができます



そこで問題は、それをどのように記述するかです。


は条件を結合することです



クエリの順序を変数として記述し、ステータスに応じて順序に値を割り当てることができます



そこで質問は、叱りをどのように書くかです。
は接合箇所の状態です


一 ありがとうございます。
2 将来、人を助けるときに、より具体的な方法を提供できることを願っています。この例では、フィールドは十分に準備されていると個人的に感じています。
処理方法について言えば、私自身もいくつかの方法を知っていますが、Q/A の質問で行き詰まったときは、もっと直接的な助けがあればと思います。
3 この問題は私自身で解決しました。これが私が解決した方法です。

SELECT * FROM table_name
ORDER BY STATUS ASC, CASE STATUS WHEN 2 THEN create_at ELSE -create_at END DESC;

.... ステータス順、status=2 の場合、create_at end desc、status=3 の場合次に create_at 最後に

私はこのように書くのが好きです
.... ステータス順、if(status=2,create_at,'') desc、if(status=3,create_at,'')

.. .. ステータスで並べ替え、status=2 の場合は create_at 終了 desc、status=3 の場合は create_at 終了

私はこのように書くのが好きです
.... ステータスで並べ替え、if(status=2,create_at,' ') desc, if(status=3,create_at,'')



ありがとうございます、とてもやりがいがあります。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。