Хорошо, это делает мое серое вещество в прочитанном мной и просматривается через mysql и просматривается различные варианты, и я могу только думать, что это настолько очевидно, что я просто слепой.fulltext mysql поиск и совпадение с точной строкой
Короче говоря, я создаю облако тегов, и часть процесса состоит в том, чтобы проверить, существует ли слово, и если да, то +1, но это должна быть точная фраза.
Итак, я понял, что поиск по полнотекстовому поиску будет лучшим вариантом.
Как пример.
$string = "hair dryer";
$string = '"'.$string.'"'; //enclose string in quotation marks to define must be an exact match
//$string = mysqli_real_escape_string($mysqli,$string); // removed to see if this was effecting the result.
$sql = "SELECT * FROM `search_keyword` WHERE Match (`keyword`) Against ('$string' IN BOOLEAN MODE) LIMIT 1";
$result=mysqli_query($mysqli,$sql);
Так что тест был в БД у меня есть строка со словом «фен», и это соответствует его - хорошему результату
Однако если изменить строку «волосы» это все еще вытаскивает «фен», который он не должен делать, поскольку это не точное совпадение.
Я читал все и каждый путь, я пытаюсь это сделать, я получаю неправильный результат.
(
[0] => Array
(
[keyword] => hair dryer
[id] => 25
)
) /// should be empty and hair as a single row is not found
Пожалуйста, любые советы приветствуются :-)
Тогда почему бы не 'SELECT count (*) FROM ... WHERE Keyword = $ string'. Если вам нужен только определенный матч. – Mruf
Да, он работает с использованием этого метода, однако каждый раз по какой-то причине он не может забрать существующее слово и добавляет другого в таблицу, если это не так. Поэтому я подумал, что если бы я использовал полный текст, я бы получил более точный метод и не создавал дубликаты. Я смущен, почему кажется, что так сложно получить запрос, чтобы вытащить только точное совпадение. –
, если я правильно понимаю вашу проблему. Полный текстовый поиск - неправильное направление, потому что полный текст создает инвертированный указатель, даже если вы установите предельный лимит символов на 1, тогда также «волосы» будут соответствовать «феном». Вам нужно работать с PHP, как обрабатывать ключевое слово перед запросом, например trim, strtolower, а затем использовать следующий запрос: SELECT count (*) FROM ... WHERE Keyword = trim ($ string) или Group query в поле Keyword. –