使用mysql 的全文检索
使用mysql 的全文检索
1. 创建表,以及对应的索引
CREATE TABLE `name_info` (`id` bigint unsigned NOT NULL COMMENT 'id',`name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '名称',FULLTEXT KEY `name_full_text_index` (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='表';
2. 使用 MATCH … AGAINST 关键字
<select id="selectFullText" resultMap="ResultMap">select * from `name_info` WHERE MATCH (name) AGAINST (#{name})</select>
3.注意事项
全文索引:要使用 MATCH ... AGAINST
,您必须确保 name
列已经有一个全文索引。您可以使用类似 ALTER TABLE your_table_name ADD FULLTEXT(name);
的 SQL 语句来添加全文索引。