Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak sortować wyniki MySQL z literami na początku, symbolami na końcu?

Spowoduje to umieszczenie wszystkich artystów, których imiona zaczynają się od litery a-z przed tymi, którzy tego nie robią:

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

Zobacz, jak działa online:sqlfiddle

Ale możesz chcieć przechowywać drugą kolumnę z uproszczoną nazwą, aby móc umieścić je w bardziej sensownej kolejności:

artists

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

Wartości dla simplified_name nie można łatwo wygenerować w MySQL, więc możesz użyć języka programowania ogólnego przeznaczenia, aby wyciągnąć wszystkich artystów, przekształcić ich w uproszczone nazwy, a następnie wypełnić bazę danych wynikami.

Gdy to zrobisz, możesz użyć tego zapytania:

SELECT DISTINCT artist
FROM artists
ORDER BY simplified_name


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak zresetować hasło roota mysql?

  2. mój skrypt nodejs nie kończy pracy sam po pomyślnym wykonaniu

  3. Maksymalny rozmiar indeksu UNIQUE w MySQL

  4. Aktualizuj wiele wierszy z różnymi wartościami w jednym zapytaniu - MySQL

  5. Proste tworzenie kopii zapasowych i przywracanie bazy danych mysql z Javy