Điều này sẽ đặt tất cả các nghệ sĩ có tên bắt đầu bằng một chữ cái trong a-z trước những tên không:
SELECT DISTINCT artist
FROM songs
ORDER BY artist REGEXP '^[a-z]' DESC, artist
Xem nó hoạt động trực tuyến: sqlfiddle
Nhưng bạn có thể thích lưu trữ cột thứ hai với tên đơn giản hơn để bạn có thể đặt chúng theo thứ tự có ý nghĩa hơn:
artists
artist | simplified_name
------------------------------------
&i | i
+NURSE | nurse
2007excalibur2007 | excalibur
Các giá trị cho simplified_name
không thể dễ dàng tạo trong MySQL, vì vậy bạn có thể muốn sử dụng ngôn ngữ lập trình mục đích chung để lấy ra tất cả các nghệ sĩ, chuyển đổi chúng thành tên đơn giản, sau đó điền kết quả vào cơ sở dữ liệu.
Sau khi hoàn tất, bạn có thể sử dụng truy vấn này:
SELECT DISTINCT artist
FROM artists
ORDER BY simplified_name