SQL匹配命中关键词字符串并将命中的关键词保存至新字段

写这篇博文主要就是想记录一下在数据处理过程中遇到的问题,困扰了好久才解决!

问题背景:一张表格,其中某字段为字符串形式,内容为中文、英文或中英文混合语句,此外预置一批关键词,希望将命中关键词的字符串字段输出,并将命中的关键词保存至新的字段中。

产生问题:此前的工作中,查看是否命中关键词,大多采用LIKE或RLIKE函数。假设以【淘宝 OR 京东 OR 拼多多】为关键词,通常采用

SELECT XXX, XXX, XXX(想要输出的字段名)FROM 表名

WHERE 字符串字段名 RLIKE '淘宝|京东|拼多多';

但问题在于:该查询方式虽然可设置关键字条件,但无法获取命中的是哪个关键词,也就无法将命中关键词输出至新的一列字段。

问题解决:通过对匹配函数的学习,发现可以采用REGEXP_EXTRACT函数输出关键词、采用REGEXP或RLIKE函数匹配关键词的方式实现该功能,实现方式如下:

SELECT XXX, XXX, XXX(想要输出的字段名), REGEXP_EXTRACT(字符串字段名, '淘宝|京东|拼多多', 0) AS Keywords

FROM 表名 WHERE 字符串字段名 REGEXP '淘宝|京东|拼多多';

注:条件语句中的REGEXP函数也可换成RLIKE函数,同等效果。

综上,在匹配关键词的同时,将命中的关键词存储至Keywords字段中,问题解决!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值