sql >> Database >  >> RDS >> Mysql

Hoe MySQL-resultaten sorteren met letters eerst, symbolen als laatste?

Hierdoor worden alle artiesten wiens naam begint met een letter in a-z voor degenen die dat niet doen:

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

Zie het online werken:sqlfiddle

Maar misschien geeft u er de voorkeur aan een tweede kolom met de vereenvoudigde naam op te slaan, zodat u ze in een logischer volgorde kunt plaatsen:

artists

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

De waarden voor simplified_name kan niet gemakkelijk worden gegenereerd in MySQL, dus misschien wilt u een programmeertaal voor algemene doeleinden gebruiken om alle artiesten eruit te halen, ze om te zetten in vereenvoudigde namen en vervolgens de database te vullen met de resultaten.

Zodra dit is gebeurd, kunt u deze zoekopdracht gebruiken:

SELECT DISTINCT artist
FROM artists
ORDER BY simplified_name


  1. InnoDB mySQL kan ON DELETE SET DEFAULT niet instellen. Hoe instellen?

  2. Verwijder millisecondendeel van tijdstempel

  3. Hoe MySQL JDBC 08001 Databaseverbindingsfout op te lossen?

  4. Hoe schema's gebruiken in Django?