mysql 怎么判断字符串里是否有数字

mysql 怎么判断字符串里是否有数字,第1张

mysql有专门的函数实现你需要的功能:

FIND_IN_SET(str,strlist)

如果字符串str在由N子串组成的表strlist之中,返回一个1到N的值。一个字符串表是被“,”分隔的子串组成的一个字符串。如果第一个参数是一个常数字符串并且第二个参数是一种类型为SET的列,FIND_IN_SET()函数被优化而使用位运算!如果str不是在strlist里面或如果strlist是空字符串,返回0。如果任何一个参数是NULL,返回NULL。如果第一个参数包含一个“,”,该函数将工作不正常。

mysql>SELECT FIND_IN_SET('b','a,b,c,d')

返回值2

{String} REGEXP '[^0-9.]'前面的字符串是我们要做判断的, 后面的字符串是mysql的正则表达式,意思是 匹配不是数字或者小数点的字符。select ('123a' REGEXP '[^0-9.]')--‘123a'中含有字符'a' 输出结果为1 mysql中常量true输出为1 false输出为0

DELIMITER $$

DROP FUNCTION IF EXISTS `IsNum` $$

CREATE FUNCTION `IsNum` (str VARCHAR(25)) RETURNS INT

BEGIN

DECLARE iResult INT DEFAULT 0

IF ISNULL(str) THEN return 0 END IF-- NULL 字符串

IF str = '' THEN return 0 END IF-- 空字符串

SELECT str REGEXP '^[0-9]*$' INTO iResult

IF iResult = 1 THEN

RETURN 1

ELSE

RETURN 0

END IF

END $$

DELIMITER 

 关于 delimiter 的说明请查看文档 MySQL 中函数定义中 delimiter的说明

这个函数用来判断给定的字符串是否为函数, 用法示例:

select IsNum('12') -- 结果为 1

select IsNum('12-') -- 结果为 0

select IsNum(说明) from TABLE_XX  


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/6206867.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-18
下一篇 2023-03-18

发表评论

登录后才能评论

评论列表(0条)

保存