Можно ли в MySQL создать индекс для ORDER BY по условию?

Есть в базе таблица с записями, некоторые могут начинаться со специальных символов типа #,$,- и т.д. Если делать ORDER BY DESC по полю записью, то эти символы оказываются вверху выборки. Если делать ORDER BY с условием типа LIKE или RLIKE, то запрос жутко тормозит. Можно ли сделать индекс на поле с условием типа LIKE или RLIKE или REGEXP?
  • Вопрос задан
  • 215 просмотров
Решения вопроса 1
DmitriyEntelis
@DmitriyEntelis
Думаю за деньги
Нет, нельзя.
Создайте отдельное поле для сортировки, сохраняйте в него отфильтрованные данные.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
romy4
@romy4
Exception handler
можно
ORDER BY IF(REGEXP '^[#$-]',0,1) ASC
Ответ написан
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Это проблема уровнем выше!
Как оказались спец.символы вместе с текстовыми данными в одном поле?!
Разнесите по разным столбцам.
Ответ написан
Ваш ответ на вопрос

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

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