2016-10-28 2 views
1

Я пытаюсь выполнить поиск в базе данных со специальными символами, в частности, с апострофом.SQL Поиск строки в БД со специальным символом/

Например, я хочу найти строку: «Песчаная собака», но я только что ввел «sandys dog», оставив апостроф. Несмотря на то, что в базе данных существует «собака Сэнди», она, похоже, не показывает ее в результатах.

Вот мой запрос:

SELECT * FROM `Table` WHERE `Title` LIKE '%sandys dog%' 

Я искал везде, и я не могу показаться, чтобы найти решение, которое работает.

EDIT Ограничение: строка пользовательского Примечания: - Если пользователь ищет собаку Песчаной с апострофом, он отлично работает, как ожидался. - В конечном итоге я хотел бы получить все возможные результаты, если таблица содержит обе строки с апострофом и без него.

+0

Почему бы не использовать параметризованные запросы и не найти фактическое значение? Вы можете сделать 'SELECT * FROM Table WHERE Название LIKE '% sandy% s dog%'' или 'SELECT * FROM Table WHERE Название LIKE '% sandy_s dog%'' – chris85

ответ

1

В сервере SQL, вы можете использовать REPLACE:

SELECT * 
FROM Table 
WHERE REPLACE(Title, '''', '') LIKE '%sandys dog%' 

Двойной апостроф внутри строки является маскирующим, поэтому она находит любые апострофа в строке, и заменяет их с пустыми строками.

+0

Удивительный! это сработало. Благодаря! – Ivy

+1

Затем, пожалуйста, отметьте этот ответ как правильный @Ivy. Так как это поможет другому пользователю легко найти этот ответ. –

0

Как насчет этого?

SELECT * FROM Table WHERE Title LIKE '%sandy''s dog%' 

или

SELECT * FROM Table WHERE Title LIKE '%sandy_s dog%' 

Подчеркивание является "один символ" подстановочные.

Смежные вопросы