具有自然语言搜索功能的MySQL LIKE运算符

时间:2018-10-09 09:22:49

标签: mysql full-text-search sql-like

我正在使用其他人建立的两个表(表A和表B)。我注意到,如果我使用自然语言在表A上使用LIKE运算符进行搜索,则会得到结果,但是当我在表B上使用LIKE时,则会得到0个结果。一件奇怪的事是,如果搜索查询有四个词,例如"SELECT COUNT(*) FROM Table_A WHERE title LIKE '%Effect of previous exposure%';"

,则表B将返回1作为计数结果

请参见以下示例:

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)

当我运行SHOW CREATE TABLE语句时,我得到以下结果;

表A

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

表B:

ENGINE=InnoDB AUTO_INCREMENT=41681 DEFAULT CHARSET=utf8

显然,表引擎之间存在差异。

两个表都在同一个数据库中。可能是什么错误?

0 个答案:

没有答案