Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да сортирам резултатите от MySQL с букви първи, символи последни?

Това ще постави всички изпълнители, чиито имена започват с буква от a-z преди тези, които не го правят:

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

Вижте как работи онлайн:sqlfiddle

Но може да предпочетете да съхраните втора колона с опростеното име, за да можете да ги поставите в ред, който има по-голям смисъл:

artists

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

Стойностите за simplified_name не може лесно да се генерира в MySQL, така че може да искате да използвате език за програмиране с общо предназначение, за да извадите всички изпълнители, да ги трансформирате в опростени имена, след което да попълните базата данни с резултатите.

След като това е направено, можете да използвате тази заявка:

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. Преобразувайте тази заявка в красноречива

  2. MySQL не поддържа едноредови коментари тук. Каква би била причината?

  3. MySQL:Какво е обратна версия на LIKE?

  4. Защо UNION заявките са толкова бавни в MySQL?

  5. Mysql 5.5.10 - Mac 10.6.x - автоматично стартиране