Поиск записей с апострофом

0

Я пытаюсь найти базу данных для ключевого слова, такого как Obrien, и результаты должны возвращать все записи с O'Brien. Я попытался использовать полнотекстовый поиск MySql. Проблема с ним - это набор результатов, который может содержать только 1 запись, но полнотекстовая функция требует, чтобы набор результатов содержал не более 3 записей или 50% согласованных результатов.

Кто-нибудь знает, как это сделать?

  • 0
    Почему бы просто не игнорировать другие результаты? Кроме того, как вы можете быть уверены, что первым результатом является тот, который вы ищете?
  • 0
    Извините, если мой вопрос не был ясен. Я имел в виду, что результаты могут содержать только 1 совпадение, и именно здесь MySQL поиск не показывает это единственное совпадение
Теги:

2 ответа

0

Большое вам спасибо за ваш ответ. Поистине оцените вашу помощь. Я попробовал это, и это сработало для меня. Я получил это решение на этом сайте.

Название: Апострофы и поиск в SQL Server FT

последнее решение, предложенное "Alistair Knock", которое

SELECT фамилия FROM table ГДЕ фамилия LIKE '% value%' ИЛИ ЗАМЕНИТЬ (фамилия, '' '', '') LIKE '% value%'

Это работает даже тогда, когда FT не включен.

Спасибо всем. Надеюсь, это поможет кому-то.

0

Вы могли бы сделать что-то вроде:

REPLACE(name,'''','')

Я протестировал его:

DECLARE @name VARCHAR(10)
SELECT @name = 'O''brien'

SELECT @name as "pre", REPLACE(@name, '''', '') as "post"

и это игра меня O'brien для pre column и Obrien за столбец.

изменить после ответа от OP:
попробуйте это

SELECT TOP 1 *
FROM table
WHERE REPLACE(name, '''', '') = REPLACE(searchString, '''', '')
  • 0
    Спасибо за быстрый ответ. Я попробовал это решение, но мне нужно ввести строку поиска как «Обриен» и ожидать, что результаты покажут записи с «Обриен» и «О'Брайен».

Ещё вопросы

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