数码资讯
MySQL单表中多关键字模糊查询的实现方法
选购提示
关注价格、性能、续航、售后和真实使用场景,理性比较后再下单。
在最近的一个项目,一个多关键字模糊查询在MySQL单表是必要的,但这些关键词并不总是在一个领域存在。例如,现有的表,其中有标题,标签,三个领域和描述、记录的标题,标签和数据介绍。然后,根据用户输入的查询请求,输入的字符串分割成空间的多个关键词,然后包含这些关键字的记录是在这三个领域的查询。
现在的问题是,这些关键字可能存在于三个字段中的一个或多个字段中,但它们需要三个字段来包含所有关键字。因此,考虑了这两种方法:
当插入记录时,需要将多个模糊查询字段合并成一个字符串,并将其添加到一个新字段中,然后对这个新字段进行模糊查询。全文搜索使用,但需要中文分词或将汉字转换成拼音。分裂汉字是不可行的。MySQL默认FT最小字节为4,不利于以后的维护。
在互联网上爬了两天之后,这个问题还没有令人满意的解决办法。最后,在MySQL的权威指南,我们将使用连接的方式。书中指定位置的描述:
concat(str1、str2,…)
返回值:通过结合所有的入口和出口参数字符串。只要在输入参数为空值,空returned.concat只允许一个输入参数。
因此,MySQL单表多关键字模糊查询可以通过下面的sql查询实现
SELECT * FROM `杂志`哪里concat(`标题`,`标签`,`描述`)如关键字% %。
现在的问题是,这些关键字可能存在于三个字段中的一个或多个字段中,但它们需要三个字段来包含所有关键字。因此,考虑了这两种方法:
当插入记录时,需要将多个模糊查询字段合并成一个字符串,并将其添加到一个新字段中,然后对这个新字段进行模糊查询。全文搜索使用,但需要中文分词或将汉字转换成拼音。分裂汉字是不可行的。MySQL默认FT最小字节为4,不利于以后的维护。
在互联网上爬了两天之后,这个问题还没有令人满意的解决办法。最后,在MySQL的权威指南,我们将使用连接的方式。书中指定位置的描述:
concat(str1、str2,…)
返回值:通过结合所有的入口和出口参数字符串。只要在输入参数为空值,空returned.concat只允许一个输入参数。
因此,MySQL单表多关键字模糊查询可以通过下面的sql查询实现
SELECT * FROM `杂志`哪里concat(`标题`,`标签`,`描述`)如关键字% %。
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。