Как искать более длинный контент, чем обычный при использовании PHP и MySQL?

Я поддерживаю устаревшую систему (которая использует PHP и MySQL). Я столкнулся с проблемой при поиске контента из базы данных. Например, у меня есть запрос для поиска:

$query = "SELECT * FROM comments WHERE comment_content LIKE '%"$term"%'";

Я использую UTF-8, MySQL с типом InnoDB. Когда длина $ term составляет 8067 (японские) символы (число также как текстовые символы), проблем нет. Когда длина $ term составляет 8068 символов, поиск невозможен, это моя проблема.

  • Какова максимальная длина, когда полнотекстовый поиск использует PHP и MySQL?
  • Как решить мою проблему?

Ваша помощь ценится. Спасибо!

0

Решение

Эээ … что-то вроде этого в реальном коде.

  1. Проверьте длину функции $ term len ()

    len($term) if $term is >8067 then do stuff
    
  2. Итерация по нескольким разам 8067 символов вписывается в округленный $ термин

    $charachterincrement=8067
    $searchtermcount = roundup(len($term)/8067,0)
    
    $searchterm = "comment_content LIKE" & left($term,$charachterincrement)
    

    $ Я = 1

    do while $i <= $searchtermcount
    $i = $i+1
    $charachterincrement=$charachterincrement+8067
    
  3. Создать новый $searchterm в нем будет ваше «подобное» утверждение.

  4. Для каждой итерации добавьте это к вашему $searchterm

    $searchterm = $searchterm & " AND comment_content  LIKE '%" & mid($term, $charachterincrement, 8067) & "'%"
  5. замкнуть петлю

    loop
    
  6. Закройте, если

    end if
    
    $query = "SELECT * FROM comments WHERE $searchterm;
    

Это создаст оператор SQL, который потребует все части вашего начального $ term в вашем поисковом запросе. Тем не менее, он не будет принимать во внимание порядок, он просто проверит, существует ли каждая запись 8067 в сообщении.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]