Dadurch werden alle Künstler, deren Namen mit einem Buchstaben in a-z beginnen, vor denen platziert, die dies nicht tun:
SELECT DISTINCT artist
FROM songs
ORDER BY artist REGEXP '^[a-z]' DESC, artist
Sehen Sie, wie es online funktioniert:sqlfiddle
Vielleicht ziehen Sie es aber vor, eine zweite Spalte mit dem vereinfachten Namen zu speichern, damit Sie sie in einer sinnvolleren Reihenfolge anordnen können:
artists
artist | simplified_name
------------------------------------
&i | i
+NURSE | nurse
2007excalibur2007 | excalibur
Die Werte für simplified_name
kann in MySQL nicht einfach generiert werden, daher möchten Sie vielleicht eine Allzweck-Programmiersprache verwenden, um alle Künstler herauszuziehen, sie in vereinfachte Namen umzuwandeln und dann die Datenbank mit den Ergebnissen zu füllen.
Sobald dies erledigt ist, können Sie diese Abfrage verwenden:
SELECT DISTINCT artist
FROM artists
ORDER BY simplified_name