mysql - MYSQL - 'NA'的全文匹配失败
问题描述
我有这个数据库(MySql v5.7)
DROP TABLE IF EXISTS test3_sim;
CREATE TABLE test3_sim (
ID INT not null,
texto VARCHAR(1024)
);
ALTER TABLE test3_sim ADD FULLTEXT(texto);
INSERT INTO test3_sim (id,texto) VALUES (1,'NA');
INSERT INTO test3_sim (id,texto) VALUES (2,'NA');
INSERT INTO test3_sim (id,texto) VALUES (3,'DUPLICATE');
INSERT INTO test3_sim (id,texto) VALUES (4,'OTH');
INSERT INTO test3_sim (id,texto) VALUES (5,'NOP');
INSERT INTO test3_sim (id,texto) VALUES (6,'NOP');
INSERT INTO test3_sim (id,texto) VALUES (7,null);
我在 BOOLEAN MODE 中通过全文语法执行一些搜索,搜索不同的值匹配。当我搜索术语“NA”时,我无法真正弄清楚为什么它会失败:此查询结果为空:
SELECT id, texto
FROM test3_sim
WHERE MATCH (texto) AGAINST ('NA' IN BOOLEAN MODE)
AND texto is not null
但它应该输出前 2 行。
对于“DUPLICATE”、“OTH”、“NOP”搜索,一切正常。
查询失败是否有特定原因?演示在这里
解决方案
根据@Raymond Nijaland 的评论,FULLTEXT 的默认 ft_min_word_len 设置为 3,这意味着它不会索引长度小于的字符串
推荐阅读
- spring - 春季单元测试存储库保存不起作用
- jenkins - 如何使用 Jenkins 基于代码更改构建阶段?
- oracle - 在 SQL 上使用简单的“CREATE TABLE”似乎不起作用,更多信息
- python - 更改 WSDL 以将参数添加到现有 SOAP API 调用
- sqlite - flask-sqlite:如何将数据同时插入 3 个不同的表中,然后在网页中显示?
- php - PHP 将 fetch_field() 更改为 mysqli
- sql - 使用分区在 SQL 中创建唯一的行 ID
- python - Concat 给出传递值的形状是 X,索引意味着 Y
- r - 'testthat',我应该如何解释这个失败?
- excel - 将时间转换为 43811.23287(excel 时间)格式的人类可读日期时间,并删除分钟和秒