У меня проблема с поисковым запросом, который я использую, мои данные содержат имена и информацию, которая имеет апострофы в различных формах (в кодировке HTML и фактическая).
Так, например, я хотел бы альтернативу этому:
SELECT * FROM Customers WHERE REPLACE(LastName,'''','')
LIKE Replace('O''Brien,'''','')
Это всего лишь пример, я хочу, чтобы, если кто-то наберет OBrien или O'Brien, это все еще работало, мне нужно заменить три версии персонажа, и данные будут получены из источника и не могут быть изменены - что можно сделать с запросом, чтобы этот вид поиска работал.
У меня есть Предметы с именами, которые работают таким образом, которые в настоящее время имеют много вложенных функций REPLACE и не могут найти что-то, что будет работать таким образом, что более эффективно.
Я использую MS SQL 2000 с ASP, если это помогает.
Редактировать
Вот запрос, который должен соответствовать O'Brien или OBrien, этот запрос делает это, но он слишком неэффективен - к нему присоединяется другой для Имен элементов и FirstName (необязательно) для сравнения.
SELECT * FROM Customers
WHERE
REPLACE(REPLACE(REPLACE(LastName,''',''),''',''),'''','')
LIKE
REPLACE(REPLACE(REPLACE('%O'Brien%',''',''),''',''),'''','')