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

ORDER BY句でカスタムオーダーを定義するにはどうすればよいですか?

    FIELD関数を使用します:-

    SELECT *
    FROM articles
    WHERE article.category IN (1, 57, 67, 78)
    ORDER BY FIELD(article.category, 1, 67, 78, 57)
    

    編集-見つからない場合は0が返されるため、最初に2つの値を並べ替える場合は、関数に2つの値を含めるだけで、逆にして降順で並べ替えることができます。

    SELECT *
    FROM articles
    WHERE article.category IN (1, 57, 67, 78)
    ORDER BY FIELD(article.category, 67, 1) DESC
    

    これにより、最初にカテゴリ1が配置され、その後にカテゴリ67が配置され、その後に他のカテゴリが続きます



    1. JOINとRAND()を含むSymfonyでMySQLクエリを作成する際の問題

    2. 文字列の制約をチェックして、数字のみを含めます。 (Oracle SQL)

    3. MySQLでDateTimeを数値に変換する方法は?

    4. SQLServerで現在の合計を計算する