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

MySQLの結果を最初に文字、最後に記号で並べ替える方法は?

    これにより、名前がa〜zの文字で始まるすべてのアーティストが、そうでないアーティストの前に配置されます。

    SELECT DISTINCT artist
    FROM songs
    ORDER BY artist REGEXP '^[a-z]' DESC, artist
    

    オンラインで動作することを確認してください: sqlfiddle

    ただし、わかりやすい順序で並べ替えられるように、簡略化された名前で2番目の列を格納することをお勧めします。

    artists
    
    artist            | simplified_name
    ------------------------------------
    &i                | i
    +NURSE            | nurse
    2007excalibur2007 | excalibur
    

    simplified_nameの値 MySQLで簡単に生成することはできないため、汎用プログラミング言語を使用してすべてのアーティストを引き出し、簡略化された名前に変換してから、データベースに結果を入力することをお勧めします。

    これが完了すると、次のクエリを使用できます:

    SELECT DISTINCT artist
    FROM artists
    ORDER BY simplified_name
    


    1. 「Windows10S」について知っておくべき5つのこと

    2. ユーザー@'localhost'のデータベース''へのアクセスが拒否されました

    3. Rails 3、ActiveRecord、PostgreSQL-.uniqコマンドが機能しませんか?

    4. doctrine2DBALでサブクエリに参加する