sql >> Databáze >  >> RDS >> Mysql

Jak seřadit výsledky MySQL s písmeny jako první, symboly jako poslední?

Tím budou všichni umělci, jejichž jména začínají písmenem v a-z, před těmi, kteří nezačínají:

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

Podívejte se, jak to funguje online:sqlfiddle

Možná však budete chtít uložit druhý sloupec se zjednodušeným názvem, abyste je mohli seřadit v pořadí, které dává větší smysl:

artists

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

Hodnoty pro simplified_name nelze snadno generovat v MySQL, takže možná budete chtít použít programovací jazyk pro obecné použití k vytažení všech umělců, jejich transformaci na zjednodušená jména a poté naplnění databáze výsledky.

Jakmile to uděláte, můžete použít tento dotaz:

SELECT DISTINCT artist
FROM artists
ORDER BY simplified_name


  1. Co se vlastně děje s tím hledáním?

  2. Top 5 nástrojů pro monitorování MySQL

  3. 4 způsoby, jak počítat řádky v tabulce SQL Server s klady a zápory

  4. Jak automatizovat sběr dat při růstu databáze SQL Server