Оператор MySQL LIKE с поиском на естественном языке - PullRequest
0 голосов
/ 09 октября 2018

Я работаю с двумя таблицами (ТАБЛИЦА A и ТАБЛИЦА B), созданными кем-то другим.Я заметил, что если я выполняю поиск с помощью оператора LIKE в TABLE A с использованием естественного языка, я получаю результаты, но когда я использую LIKE в TABLE B, я получаю 0 результатов.Одна особенность заключается в том, что таблица B будет возвращать 1 в качестве результата подсчета, если в поисковом запросе есть четыре слова, например, "SELECT COUNT(*) FROM Table_A WHERE title LIKE '%Effect of previous exposure%';"

См. Следующий пример:

SELECT COUNT(*) FROM Table_A WHERE title LIKE '%Effect of previous exposure to malaria on diabetes type 1.%';
+----------+
| count(*) |
+----------+
|        1 |
+----------+
1 row in set (0.00 sec)



SELECT COUNT(*) FROM Table_B WHERE title LIKE '%Effect of previous exposure to malaria on diabetes type 1.%';

    +----------+
    | count(*) |
    +----------+
    |        0 |
    +----------+
    1 row in set (0.02 sec)

Когда я запускаю *Заявление 1007 * я получаю следующие результаты:

Таблица A

ENGINE=InnoDB AUTO_INCREMENT=438 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci

Таблица B:

ENGINE=InnoDB AUTO_INCREMENT=41681 DEFAULT CHARSET=utf8

Очевидно, что есть различия между движками таблицы.

Обе таблицы находятся в одной и той же БД. Что может быть не так?

...