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`, предварительно удалив из него все спец символы которые могут вам помешать. И делать сортировку по новому полю.