Алфавитный список

Сенсей

Новичок
Алфавитный список

Нужно вывести список букв на которые начинаются ники поьзователей... делаю

PHP:
SELECT DISTINCT (SUBSTRING(user_nick_name, 1, 1)) AS letter FROM users ORDER by letter ASC
Но оно сваливает все в кучу...

Мне нужно вывести отдельные списки английских букв...

Потом русских...

Потом всяких там сисмволов ? , %, $, # и т.д

1 - есть идея сделать 3 запроса к базе... но как указать что бы выборка бралаь по ангйлиским буквам/русским/ и вобще не буквам

2 - быть может есть возможность сделать все это одним запросом, но с умным order ? Например что бы сортировка была сначало по ангйлискийм буквам, потом русским, потом не буквам ...
 

Сенсей

Новичок
По letter гад не хочет по binary сортировать... пришлось подставить название поля user_nick_name

PHP:
SELECT DISTINCT (SUBSTRING(user_nick_name, 1, 1)) AS letter FROM users ORDER by binary(user_nick_name)  ASC
Теперь выводит такой список:

Код:
* + - 0 4 B D F G J L M O R T V Y Z e h k n p q s ~ • А Д Н
Уже лучше... но хотелось бы что бы всякие там * + - были в самом конце....

Или же что вобще не делалась выборка по НЕ буквам ... а для них потом сделать отдельный запрос...
 

Фанат

oncle terrible
Команда форума
ну так where тебе в руки. between опять же
можно ещё ord или как она там в мускуле называется
 

Сенсей

Новичок
Так... вот я дошел до этого:

Код:
SELECT DISTINCT (SUBSTRING(UPPER(user_nick_name), 1, 1)) AS letter FROM spnuke_users WHERE SUBSTRING(user_nick_name, 1, 1) REGEXP '[a-z]' ORDER by binary(UPPER(user_nick_name)) ASC
выводит:

Код:
A B D E F G H J K L M N O P Q R S T V Y Z
Мне аж самому страшно от такого запроса..
 
Сверху