重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
mysql有专门的函数实现你需要的功能:
创新互联公司专业为企业提供宁安网站建设、宁安做网站、宁安网站设计、宁安网站制作等企业网站建设、网页设计与制作、宁安企业网站模板建站服务,10年宁安做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
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
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
{String} REGEXP '[^0-9.]'
前面的字符串是我们要做判断的, 后面的字符串是mysql的正则表达式,意思是 匹配不是数字或者小数点的字符。
select ('123a' REGEXP '[^0-9.]'); --‘123a'中含有字符'a' 输出结果为1 mysql中常量true输出为1 false输出为0