SQL « Игнорирование кавычек в запросе
Можно ли как-то сделать такой запрос SELECT, при котором ORDER BY name был с игнорированием кавычек? Т.е. имена (поле name) могут быть с кавычками (типа: «»), а могут без. Слышал можно как-то регулярное выражение запихнуть в запрос, а как не знаю.
1 ответов
Попробуйте так (это MySQL).
SELECT
mt.*
FROM
my_table mt
ORDER BY
REPLACE(mt.TextColumn, '\'', '')
P.S. Указывайте в тегах, какая СУБД имеется в виду. Они же отличаются. ;)
Здравствуйте.
Использование функций вместо полей в конструкциях WHERE, ORDER BY и пр. ведет к отказу использовать индексы интерпретатором БД (в частности MySQL), что ведет к тому, что запрос будет трудно закешировать и он будет исполняться намного дольше. Поэтому самым лучшим способом в вашем случае будет ввести новую колонку в таблицу и писать туда значение из поля `name`, предварительно удалив из него все спец символы которые могут вам помешать. И делать сортировку по новому полю.