@eldar_web

Как отсортировать по алфавиту данные (при присутствии кавычек)?

Есть данные в БД MySQL.
Я хочу отсортировать по алфавиту (name ASC). Но те записи, у которых стоит кавычки в начале и в конце ("Экспо"), они первыми сортируются, а должны по первой букве отсортироваться.
Как решить проблему?
  • Вопрос задан
  • 600 просмотров
Пригласить эксперта
Ответы на вопрос 4
DmitriyEntelis
@DmitriyEntelis
Думаю за деньги
Учтите что решение IceJOKER и Михаил Тодерашко будет работать ОЧЕНЬ медленно на даже на сравнительно небольшой базе.
Такая сортировка не использует индексы.
При каждом запросе, для каждой строки будет вычисляться значение функции TRIM, а потом еще и сортироваться.

Правильное на мой взгляд решение - обновить поле name так что бы в нем не было кавычек.
Если это не возможно - создать новое поле без кавычек и сортировать по нему.
Ответ написан
@IceJOKER
Web/Android developer
ORDER BY TRIM(BOTH '"' FROM name);

stackoverflow.com/questions/1439965/sort-by-name-b...
Ответ написан
Комментировать
@Mihail9575
Попробуй:
SELECT * FROM `table` ORDER BY TRIM(BOTH '"' FROM `name`)
Ответ написан
Комментировать
Vapaamies
@Vapaamies
Психанул и снес свои ответы козлам, не отмечающим…
Нужно использовать лингвистическую сортировку. Если в MySQL можно сделать что-то вроде alter session set NLS_SORT = LINGUISTIC, как в другой СУБД от Oracle, это должно стать решением. Предлагаю почитать документацию MySQL.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы