Сортировка по части строки - MySQL
Формулировка задачи:
И сразу еще один вопрос про сортировку.
Есть список:
Можно ли отсортировать только по названиям?
Предположительно, нужно использовать регулярное выражение
"имя" |
ООО "Кровушка" |
ООО "Дубинушка" |
Горморпропкуб |
"имя" |
Горморпропкуб |
ООО "Дубинушка" |
ООО "Кровушка" |
Решение задачи: «Сортировка по части строки»
textual
Листинг программы
select name from test order by if(name regexp '^ООО ".*"', SUBSTRING(name,6), name);
Объяснение кода листинга программы
В данном коде выполняется запрос к таблице test
с целью выбрать все значения столбца name
, которые затем упорядочиваются по следующему правилу:
- Если значение столбца
name
начинается сООО
(без кавычек), то для сортировки используется полеSUBSTRING(name,6)
(без кавычек), то есть, начиная с 7-го символа. - Если значение столбца
name
не начинается сООО
(без кавычек), то для сортировки используется само значение столбцаname
. Таким образом, запрос позволяет отсортировать значения столбцаname
по части строки, которая следует послеООО
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д