首页 > 解决方案 > 带有自然语言搜索的 MySQL LIKE 运算符

问题描述

我正在使用由其他人构建的两张表(表 A 和表 B)。我注意到,如果我使用自然语言在表 A 上使用 LIKE 运算符进行搜索,我会得到结果,但是当我在表 B 上使用 LIKE 时,我会得到 0 个结果。一个特殊的事情是,如果搜索查询有四个单词,TABLE 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)

当我运行该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

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

两个表都在同一个数据库上。可能有什么问题?

标签: mysqlfull-text-searchsql-like

解决方案


推荐阅读