mysql查询一定数值范围数据

首先创建一个函数

像这样

CREATEFUNCTIONisnum(p_stringVARCHAR(32))RETURNSint(4)NOTDETERMINISTICSQL安全定义者评论'检查字符串是否为纯数字'BEGIN/*检查字符串是否为纯数字*//*返回:1-是纯数字0-是纯数字不是数字*/DECLAREiResultINTDEFAULT0;SELECTp_stringREGEXP'^[0-9]*$'INTOiResult=1THENRETURN0;

然后

select*from表名whereisnum(字段名)<>0andCast(字段名称为DECIMAL)>1000和Cast(字段名称为DECIMAL)<2000>

将此语句中的表名称和字段名称替换为您自己的名称

MySQL判断数据非数字的方法详解mysql中判断为非数字

MySQL判断数据是否为非数字类型的方法详解。
在数据库开发中,经常需要判断某些数据是否是数值型的。
然而,在某些情况下,数据不一定是数字。
在此阶段,必须对数据进行评估,以避免不必要的错误。
本文将详细介绍MySQL中判断数据是否为非数字的方法。
1、使用MySQL内置函数MySQL内置函数中有一个函数叫ISNUMERIC,它可以判断一个字符串是否是数字类型。
ISNUMERIC函数将返回0或1,0表示它不是数字类型,1表示它是数字类型。
ISNUMERIC函数的语法如下:ISNUMERIC(expr)其中expr表示要判断的表达式或字段名称。
例如,下面的SQL语句可以判断某个字段是否为numeric类型:SELECTISNUMERIC(salary)FROMemployee这将返回一个由0和1组成的结果集,表示每个员工的工资是否为numeric类型。
2、使用正则表达式除了使用MySQL的内置函数之外,我们还可以使用正则表达式来判断一条数据是否是数字。
正则表达式是一个强大的匹配工具,可以轻松匹配满足指定条件的字符串。
以下SQL语句验证Salary字段不是数字:SELECT*FROMemployeeWHEREsalaryNOTREGEXP'^[0-9]+(\.[0-9]+)?$'正则表达式^[0-9]+(\.[0-9]+)?$表示匹配整数和浮点(十进制)类型的数字。
数字中的整数和小数位数没有限制,并且小数点不需要存在。
如果匹配成功,则返回false;否则,返回true。
3.使用CAST函数。
另一种方法是使用CAST函数。
CAST函数将字符串转换为指定的数据类型。
如果字符串无法转换为指定的数据类型,则返回NULL。
例如,以下SQL语句可以将工资值转换为DECIMAL类型:SELECTCAST(salaryASDECIMAL)FROMemployee如果工资值无法转换为DECIMAL类型,则返回NULL。
摘要:本文介绍了三种判断MySQL中数据是否为数值的方法。
利用ISNUMERIC函数、正则表达式和CAST函数,可以分别实现不同的判断方法。
这些方法可以有效帮助我们在数据库开发过程中避免不必要的错误。