MySQL低版本中:字符串中的数字、英文字符、汉字提取

news/2024/11/8 9:45:05/

我们如何提醒一个字段中的汉字和数字呢

高版本指mysql8.0以上

使用sql语句


SELECT REGEXP_REPLACE(column_name, '[^\\p{Han}]', '') AS chinese_characters
FROM table_name;其中  column_name指名称列,table_name是表名 

2.低版本使用

需要新建函数

DELIMITER $$DROP FUNCTION IF EXISTS `num_char_extract`$$CREATE DEFINER=`root`@`%` FUNCTION `num_char_extract`(Varstring VARCHAR(100)CHARSET utf8, flag INT) RETURNS varchar(50) CHARSET utf8
BEGINDECLARE len INT DEFAULT 0;DECLARE Tmp VARCHAR(100) DEFAULT '';SET len=CHAR_LENGTH(Varstring);IF flag = 0 THENWHILE len > 0 DOIF MID(Varstring,len,1)REGEXP'[0-9]' THENSET Tmp=CONCAT(Tmp,MID(Varstring,len,1));END IF;SET len = len - 1;END WHILE;ELSEIF flag=1THENWHILE len > 0 DOIF (MID(Varstring,len,1)REGEXP '[a-zA-Z]') THENSET Tmp=CONCAT(Tmp,MID(Varstring,len,1));END IF;SET len = len - 1;END WHILE;ELSEIF flag=2THENWHILE len > 0 DOIF ( (MID(Varstring,len,1)REGEXP'[0-9]')OR (MID(Varstring,len,1)REGEXP '[a-zA-Z]') ) THENSET Tmp=CONCAT(Tmp,MID(Varstring,len,1));END IF;SET len = len - 1;END WHILE;ELSEIF flag=3THENWHILE len > 0 DOIF not (MID(Varstring,len,1)REGEXP '^[u4e00-u9fa5]')and not (MID(Varstring,len,1)REGEXP '^[/]')and not (MID(Varstring,len,1)REGEXP '^[ ]')THENSET Tmp=CONCAT(Tmp,MID(Varstring,len,1));END IF;SET len = len - 1;END WHILE;ELSESET Tmp = 'Error: The second paramter should be in (0,1,2,3)';RETURN Tmp;END IF;RETURN REVERSE(Tmp);END$$
DELIMITER ;

优化了除去斜杠和空格,如果需要展示的话,在第三个判断中去除’1'和【】判断就可以实现

测试数据建立

在这里插入图片描述

测试使用

传值为1时候过滤字符

SELECT markinfo, num_char_extract(markinfo,1) as chinesechar from dev_move 

在这里插入图片描述

值为2时候过滤数字加字符

SELECT markinfo, num_char_extract(markinfo,2) as chinesechar from dev_move 

在这里插入图片描述

值为3过滤汉字

SELECT markinfo, num_char_extract(markinfo,3) as chinesechar from dev_move 

在这里插入图片描述


  1. / ↩︎


http://www.ppmy.cn/news/1272206.html

相关文章

深度学习——第6章 浅层神经网络(NN)

第6章 浅层神经网络(NN) 目录 6.1 神经网络模型概述 6.2 神经网络正向传播 6.3 神经网络反向传播 6.4 W和b的初始化 6.5 总结 上一课主要介绍了一些神经网络必备的基础知识,包括Sigmoid激活函数、损失函数、梯度下降和计算图。这些知识对…

网络安全-等保测评相关知识

什么是等保测评? 信息安全等级保护,是对信息和信息载体按照重要性等级分级别进行保护的一种工作,其目的就是对信息系统安全防护体系能力的分析与确认,发现存在的安全隐患,帮助运营使用单位认识不足, 及时改进&#xff…

Quartus 18.1软件及支持包安装教程

安装前最好关闭电脑的杀毒软件和防火墙 安装包可以到Quartus官网下载需要的版本,注意选择操作系统 Quartus官网:FPGA 设计软件 - 英特尔 Quartus Prime (intel.cn) 下载解压后以管理员的身份运行 QuartusSetup-18.1.0.625.exe文件,版本不同…

华为OD机试 - 符号运算(Java JS Python C)

题目描述 给定一个表达式,求其分数计算结果。 表达式的限制如下: 所有的输入数字皆为正整数(包括0)仅支持四则运算(+-*/)和括号结果为整数或分数,分数必须化为最简格式(比如6,3/4,7/8,90/7)除数可能为0,如果遇到这种情况,直接输出"ERROR"输入和最终计…

AWS向量数据库Amazon OpenSearch Service使用测评

前言 在大模型盛行的当今,选择适宜的数据库显得尤为重要。因为你需要面对海量训练数据,快速的检索至关紧要,以及对于存储的要求也是至关重要的。对于海量的数据查询和存储是需要巨大的算力支持。向量数据库常用在一些图像文本或者视频的生成…

Lambda 表达式的常见用法

文章目录 Lambda 表达式的常见用法使用Lambda表达式集合遍历使用Lambda表达式排序使用Lambda表达式过滤使用Lambda表达式映射使用Lambda表达式归约使用Lambda表达式分组使用Lambda表达式函数式接口的实现使用Lambda表达式线程的创建使用Lambda表达式进行Optional 操作使用Lambd…

OSS上传pdf无法解析的问题

之前遇到了oss上传pdf之后无法解析的问题,后来发现是在传入size的时候,取得是inputStream.available()这个方法,根据方法描述,它获取的是一个大概的值,并不准确,因此不能用这个方法,因为我是用的…

指针进阶篇

指针的基本概念: 指针是一个变量,对应内存中唯一的一个地址指针在32位平台下的大小是4字节,在64位平台下是8字节指针是有类型的,指针类型决定该指针的步长,即走一步是多长指针运算:指针-指针表示的是两个指…