解决低版本mysql不支持REGEXP_REPLACE函数
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
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341