Порядок MySQL по символам - PullRequest
0 голосов
/ 23 марта 2010

Мне было интересно, есть ли способ сделать так, чтобы буквенно-цифровые символы имели более высокий порядок предпочтения, чем символы при выполнении ORDER BY.

т.е. «до» ('

Есть много способов обойти это, но я бы предпочел самый элегантный подход к БД.

1 Ответ

0 голосов
/ 20 сентября 2013

Это даст вам необходимый вывод.

SELECT <column_name> 
FROM <table_name> 
ORDER BY CASE 
           WHEN <column_name> REGEXP '^[a-z]' OR <column_name> REGEXP '^[A-Z]' THEN CONCAT('1',<column_name>) 
           WHEN <column_name> REGEXP '^[0-9]' THEN CONCAT('2',<column_name>) 
           ELSE CONCAT(3, <column_name>) 
         END;

Сначала будут введены буквы, затем цифры и, наконец, другие символы.

...