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

MySQLは結果をアルファベット順に表示しますが、アルファベット順にソートされたリストの前に特定のアイテムを表示します

    そのようなcaseステートメントを使用して条件付きの順序を実行するだけです

    クエリ:

    SELECT * 
    FROM $tableName 
    GROUP BY primary_category
    ORDER BY 
        CASE primary_category WHEN 'USA' THEN 1 ELSE 2 END ASC,
        primary_category ASC
    

    編集:

    最初に複数のフィールドで並べ替え、次に残りのフィールドで並べ替える場合は、このように行うことができます。

    SELECT * 
    FROM $tableName 
    GROUP BY primary_category
    ORDER BY 
        CASE primary_category 
          WHEN 'USA' THEN 1 --#-- 1 for usa
          WHEN 'China' THEN 2 --#-- 2 for china
          ELSE 3 END ASC, --#-- 3 for anything else
        primary_category ASC
    


    1. 左結合を1つの結果を返すように制限しますか?

    2. SQLiteで英数字以外の文字のみを含む行を返す

    3. SQLデータベーステーブルのn番目の行を選択するにはどうすればよいですか?

    4. 2つのMySQLデータベース間でトランザクションを実行できますか?