为了账号安全,请及时绑定邮箱和手机立即绑定

从记录中删除HTML标签

从记录中删除HTML标签

侃侃尔雅 2019-10-10 16:54:30
需要帮助从具有以下内容的表一列构成MYSQL查询Row1 : this is first <a href='mytext.txt'>row</a> from the tableRow 2 : THis is the second row <img src ='mytext.jpg'> my image is thereRow 3 : <p>This is the Third row  my mytext is there  </p>Row 4 : <p class='te_mytext'>This is the Third row  my text is there  </p>这是表格行,我尝试将关键字搜索为“ mytext”我的查询是SELECT * from table  WHERE colmn_name ` like '%mytext%' "我将得到所有4行作为结果,但结果是错误的。我只需要第3行就可以得到正确的输出。之所以只在内容中包含mytext的该行不在内容中,而是在所有行中都具有mytext的原因,如何编写MySQL查询?
查看完整描述

3 回答

?
狐的传说

TA贡献1804条经验 获得超3个赞

这是我对strip_tags函数的实现:


CREATE FUNCTION `strip_tags`($str text) RETURNS text

BEGIN

    DECLARE $start, $end INT DEFAULT 1;

    LOOP

        SET $start = LOCATE("<", $str, $start);

        IF (!$start) THEN RETURN $str; END IF;

        SET $end = LOCATE(">", $str, $start);

        IF (!$end) THEN SET $end = $start; END IF;

        SET $str = INSERT($str, $start, $end - $start + 1, "");

    END LOOP;

END;

我确保它删除了不匹配的左括号,因为它们很危险,尽管它忽略了任何未配对的右括号,因为它们无害。


mysql> select strip_tags('<span>hel<b>lo <a href="world">wo<>rld</a> <<x>again<.');

+----------------------------------------------------------------------+

| strip_tags('<span>hel<b>lo <a href="world">wo<>rld</a> <<x>again<.') |

+----------------------------------------------------------------------+

| hello world again.                                                   |

+----------------------------------------------------------------------+

1 row in set


查看完整回答
反对 回复 2019-10-10
?
Smart猫小萌

TA贡献1911条经验 获得超7个赞

这些行添加到fnStripTags功能

后SET Dirty = Insert( Dirty, iStart, iLength, '');


set Dirty = Replace(Dirty,'&nbsp;',''); #No space between & and nbsp;

set Dirty = Replace(Dirty,'\r','');

set Dirty = Replace(Dirty,'\n','');


查看完整回答
反对 回复 2019-10-10
  • 3 回答
  • 0 关注
  • 422 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信