Пример кода для удаления всех специальных символов из данных, хранящихся в MYSQL?

0

Есть ли у кого-нибудь образец кода, где я могу удалить все специальные символы из данных, хранящихся в MYSQL?

Мне нужно удалить следующие специальные символы:

: ~! @# $% *() _ + {} []; ': "< > ?

  • 0
    пример кода на каком языке? PHP? ASP? PERL?
  • 0
    Пример как: SELECT * FROM Film, где removeSpecial (Film.name) = поиск.
Показать ещё 2 комментария
Теги:
filter
character

1 ответ

3

Попробуйте это... Это выглядит ужасно, но работает

SELECT * FROM Film where REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(Film.name,':',''),'~',''),'!',''),'@',''),'#',''),'$',''),'%',''),'*',''),'(',''),')',''),'_',''),'+',''),'{',''),'}',''),'[',''),']',''),';',''),'''',''),':',''),'"',''),'<',''),'>',''),'?','') = ?

Это также будет выделять пробел:

SELECT * FROM Film where REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(Film.name,':',''),'~',''),'!',''),'@',''),'#',''),'$',''),'%',''),'*',''),'(',''),')',''),'_',''),'+',''),'{',''),'}',''),'[',''),']',''),';',''),'''',''),':',''),'"',''),'<',''),'>',''),'?',''),' ','') = ?
  • 0
    спасибо, но это вызывает много медленных, в запросе? потому что мульти заменить ....
  • 1
    Это потому, что он должен заменить каждую строку. Можно ли добавить специальный столбец name_search для столбца без специальных символов? Вы можете обновлять его каждую ночь, как этот UPDATE Film SET name_search = REPLACE....(name, ....) Тогда вы можете запустить поиск по name_search, и замена будет уже выполнена. Это также позволит вам использовать оператор LIKE и более эффективно использовать индексы, что ускорит процесс
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню