sql >> データベース >  >> RDS >> Mysql

最初に特定のフィールド値で並べ替える

    MySQL FIELD> 機能

    可能なすべての値を完全に並べ替える場合:

    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の理由です 可能なすべての値を指定しない限り、必要です。



    1. SQLServerで削除されたデータベースを追跡する方法

    2. Djangoフィクスチャが失敗し、DatabaseError:値が長すぎて文字が変化しない(50)

    3. ClusterControlを使用してPostgreSQLをDockerコンテナにデプロイする方法

    4. これらの4つの一般的なDBAの間違いを避けてください