sql >> Database teknologi >  >> RDS >> Mysql

Hvordan sorterer man MySQL-resultater med bogstaver først, symboler sidst?

Dette vil sætte alle de kunstnere, hvis navne begynder med et bogstav i a-z før dem, der ikke gør det:

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

Se det fungere online:sqlfiddle

Men du foretrækker måske at gemme en anden kolonne med det forenklede navn, så du kan placere dem i en rækkefølge, der giver mere mening:

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

Værdierne for simplified_name kan ikke nemt genereres i MySQL, så du vil måske bruge et programmeringssprog til generelle formål til at trække alle kunstnerne ud, transformere dem til forenklede navne og derefter udfylde databasen med resultaterne.

Når dette er gjort, kan du bruge denne forespørgsel:

SELECT DISTINCT artist
FROM artists
ORDER BY simplified_name
 


  1. MySQL - Deltag i 2 borde

  2. Sådan får du Dato fra et resultatsæt

  3. Indsæt unikke strenge med 8 tilfældige tegn

  4. Den nemmeste metode til at teste en Oracle Stored Procedure