Я пытаюсь построить SQL заявление, чтобы получить имена пользователей в следующем порядкеSQL регулярное выражение работает неправильно
- сначала возвращают имена, которые начинаются с арабской буквы, то имена, которые начинаются с Английские буквы, затем имена, начинающиеся со специальных символов.
- затем сортировать каждую из трех групп в порядке возрастания.
Это мой код:
SELECT `name` FROM `user`
order by case when substring(name,1,1) like 'N[أ-ي]' then 1
when substring(name,1,1) like '[a-zA-Z]' then 2
else 3
end
,name
Проблема заключается в том, что в случае часть всегда возвращает 3, и поэтому оператор сортирует имена в порядке по умолчанию (специальные символы, а затем английские буквы, то арабский буквы). В чем проблема в моем запросе?
@Cyval Спасибо за ваш correction.But даже когда я изменил параметр в функция все еще не работает. –
nop, пример этой статьи говорит, что начальный индекс подстроки начинается с 1 ... https://msdn.microsoft.com/hu-hu/library/ms187748.aspx, и это тоже: http://dev.mysql.com/ doc/refman/5.7/ru/string-functions.html # function_substring – golddragon007
@Cyval. , , Вы просто ошибаетесь. –