欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 产业 > 【mysql】关键词搜索实现

【mysql】关键词搜索实现

2025/2/23 1:48:21 来源:https://blog.csdn.net/MS_SONG/article/details/139882320  浏览:    关键词:【mysql】关键词搜索实现

关键词搜索实现两种方式

-- 方式1 模糊匹配搜索
-- 场景一:搜索出来地址内包含‘李’和‘中国’的
select * from tn_md_cust_link  where address like concat ('%李%') or address like concat ('%中国%') 
-- 场景二:搜索地址或者名称包含 ‘181’ 的  
select * from tn_md_cust_link  where address like concat ('%181%') or link_person like concat ('%181%') -- 方式2  正则搜索
-- 场景一:搜索出来地址内包含‘李’和‘中国’的
SELECT * FROM tn_md_cust_link WHERE address REGEXP '李|中国';

正则搜索使用参考注意

使用正则表达式进行关键词搜索
假设我们想要查找内容中包含某个关键词或模式的文章。可以使用 REGEXP 或 RLIKE 来实现这一点。

示例 1:查找包含单个关键词的文章
下面的查询将查找内容中包含“SQL”这个词的所有文章:

sql
SELECT * FROM articles WHERE content REGEXP ‘SQL’;
示例 2:查找包含多个关键词的文章
如果我们希望查找内容中包含多个关键词(例如“SQL”和“performance”),可以使用正则表达式的 OR 操作符 |:

sql
SELECT * FROM articles WHERE content REGEXP ‘SQL|performance’;
示例 3:忽略大小写进行关键词搜索
MySQL 的 REGEXP 操作符默认不区分大小写。如果你想要区分大小写,可以使用 REGEXP BINARY:

sql
SELECT * FROM articles WHERE content REGEXP BINARY ‘SQL’;
完整示例
综合以上,假设我们想要查找内容中包含“SQL”或者“advanced”的所有文章:

sql
SELECT * FROM articles WHERE content REGEXP ‘SQL|advanced’;
这个查询会返回所有内容中包含“SQL”或“advanced”的文章。

注意事项
性能问题: 正则表达式匹配可能会导致查询性能下降,尤其是在大型数据集上。请确保在需要时优化查询性能。
索引: 正则表达式匹配通常无法利用索引,因此在执行频繁的正则表达式搜索时请注意性能影响。
数据库支持: 并非所有的 SQL 数据库管理系统都原生支持正则表达式匹配,请根据具体的数据库系统参考相应的文档。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词