MySql-全文检索两个字符的内容无法得到结果

问题描述数据库中有如下的地址信息表,需要实现一个更具用户输入的任何内容进行搜索可能匹配的地址信息。 -- MySQL版本: 5.7.25CREATE TABLE Address ( id BIGINT NOT NULL AUTO_INCREMENT, address VARCHAR(100) NOT NULL DEFAULT '', city VARCHAR(50) NOT NULL DEFAULT '', state VARCHAR(50) NOT NULL DEFAULT '', country VARCHAR(50) NOT NULL DEFAULT '', zip_code VARCHAR(10) NOT NULL DEFAULT '', FULLTEXT ftidx_location(address, city, state, country, zip_code)) ENGINE=INNODB DEFAULT CHARSET=utf8;insert into Address(city, state) values ('Irving', 'TX');容易想到利用如下的sql进行检索。 -- 这里的 ${input} 为用户输入的内容select * from Address where match(address, city, state, country, zip_code) against (${input});然而对于太短的输入,如 "TX",即使数据库中存在 state = TX 的数据,该SQL也是无法检索到任何结果。或者输入 "Irvin" 也是无法查找到内容的。下面将对该问题进行分析和解决,使用"Irvin,TX"作为用户输入进行分析(不含双引号)。 ...

November 2, 2019 · 2 min · jiezi