返回顶部
首页 > 资讯 > 数据库 >解决低版本mysql不支持REGEXP_REPLACE函数
  • 532
分享到

解决低版本mysql不支持REGEXP_REPLACE函数

数学建模 2023-09-13 10:09:33 532人浏览 泡泡鱼
摘要

1.第一步 -- 1.开启自定义函数 SET GLOBAL log_bin_trust_function_creators=1; -- 2.如果存在该函数则删除 DROP FUNCTION IF EXISTS fnStripTag

1.第一步


-- 1.开启自定义函数
SET GLOBAL log_bin_trust_function_creators=1;
-- 2.如果存在该函数则删除
DROP FUNCTION IF EXISTS fnStripTags;
-- 3.执行自定义函数
DELIMITER |
CREATE FUNCTION fnStripTags( Dirty text(0) )
RETURNS text(0)
DETERMINISTIC 
BEGIN
  DECLARE iStart, iEnd, iLength int;
    WHILE Locate( '<', Dirty ) > 0 And Locate( '>', Dirty, Locate( '<', Dirty )) > 0 DO
      BEGIN
        SET iStart = Locate( '<', Dirty ), iEnd = Locate( '>', Dirty, Locate('<', Dirty ));
        SET iLength = ( iEnd - iStart) + 1;
        IF iLength > 0 THEN
          BEGIN
            SET Dirty = Insert( Dirty, iStart, iLength, '');
          END;
        END IF;
      END;
    END WHILE;
    RETURN Dirty;
END;
|
DELIMITER ;

2.第二步执行sql

SELECT content,del_html( content ) FROM cms_content;
    

 注意:如果执行sql 报错为以下信息

Illegal mix of collations (utf8mb4_general_ci,COERCIBLE) and (utf8mb4_0900_ai_ci,COERCIBLE) for operation 'like'

可改为一下sql例如:
SELECT  
    *
FROM
    cms_content 
WHERE
     CONVERT(del_html( content ) USING utf8) COLLATE utf8_unicode_ci   LIKE '%4%' 
    

总结如果使用 函数结果 进行匹配会报 编码和排序规则 不一致 

where  CONVERT(del_html(字段) USING utf8) COLLATE utf8_unicode_ci   LIKE '%4%'   用来解决问题,有更好的解决方式请留言

来源地址:https://blog.csdn.net/qq_37782946/article/details/130849637

您可能感兴趣的文档:

--结束END--

本文标题: 解决低版本mysql不支持REGEXP_REPLACE函数

本文链接: https://lsjlt.com/news/405736.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作