mysql - 替换select语句mysql中不同位置的多个关键字

标签 mysql select replace

我想在 mysql select 查询中用一个 replace 语句替换许多关键字。

我的 table 是这样的

enter image description here

select replace(Text,' ',' ');

我想用 concat('_' , Keywords , '__') 替换匹配的关键字。

需要帮助。

最佳答案

你可以这样试试。这可能会有所帮助。

CREATE FUNCTION `SPLIT_STR`(
  x text,
  delim VARCHAR(12),
  pos INT
) RETURNS varchar(255) CHARSET utf8
RETURN REPLACE(SUBSTRING(SUBSTRING_INDEX(x, delim, pos),
       LENGTH(SUBSTRING_INDEX(x, delim, pos -1)) + 1),
       delim, '')


CREATE  FUNCTION `GDPR_find_keyword_and_color_them`(qtntext text,keyword nvarchar(50000)) RETURNS text CHARSET utf8
BEGIN

declare ttlkeyword bigint;
declare loopvar bigint;
declare keyword_ nvarchar(1000);
set ttlkeyword=(select count(*) from nsmx_beta4.privacy_policy_keywords);

set loopvar=1;
                while(loopvar<ttlkeyword) do
                                set keyword_=(select SPLIT_STR(keyword,',',loopvar));
                                if(keyword_!='')  then
                                                set qtntext=replace(qtntext,keyword_,concat('<b>',keyword_,'</b>'));
                                end if;
                                set loopvar=loopvar+1;
                end while;    
return qtntext;
END

select GDPR_find_keyword_and_color_them('hello my name is','my,is');

结果是:你好我的名字

关于mysql - 替换select语句mysql中不同位置的多个关键字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50880700/

相关文章:

C TCP套接字,使用select后 'send'可以返回0吗?

mysql - 基于 REGEX 的替换在 MySQL 过程中不起作用

mysql - 显示 MySQL 中日期时间在下一小时内的行

java - 如何将JSP中的 "Drop-down"列表的数据存储到我们的MySql数据库中?

c# - MySQL 连接器 v.6.3.6 .NET 中 GUID 类型的问题

mysql - 相关子查询显示计数列

用于多列的 MySQL Select 语句 DISTINCT

iphone - 如何在 iphone .plist 文件中选择多行?

java - 使用替换替换字符串中的字母表?

java - 为什么 String.replace 不起作用?