Това ще постави всички изпълнители, чиито имена започват с буква от a-z преди тези, които не го правят:
SELECT DISTINCT artist
FROM songs
ORDER BY artist REGEXP '^[a-z]' DESC, artist
Вижте как работи онлайн:sqlfiddle
Но може да предпочетете да съхраните втора колона с опростеното име, за да можете да ги поставите в ред, който има по-голям смисъл:
artists
artist | simplified_name
------------------------------------
&i | i
+NURSE | nurse
2007excalibur2007 | excalibur
Стойностите за simplified_name
не може лесно да се генерира в MySQL, така че може да искате да използвате език за програмиране с общо предназначение, за да извадите всички изпълнители, да ги трансформирате в опростени имена, след което да попълните базата данни с резултатите.
След като това е направено, можете да използвате тази заявка:
SELECT DISTINCT artist
FROM artists
ORDER BY simplified_name