mysql 判断字符串中是否有汉字

-- 检查字符串是否为汉字 返回值:1-汉字 0-非汉字
DROP FUNCTION IF EXISTS hasChinese;
DELIMITER $ 
CREATE FUNCTION hasChinese(p_str VARCHAR(1024))
RETURNS int
BEGIN
DECLARE  reg VARCHAR(255);
DECLARE  ret int;
SET reg = 'e[4-9][0-9a-f]{4}';
set ret = 0;
IF hex(p_str) regexp reg THEN
	SET ret = 1;
else
	set ret = 0;
END IF;
RETURN ret;
END;
$
DELIMITER ;

DELIMITER $ 
CREATE  FUNCTION `fc_is_hanzi`(p_str VARCHAR(1024)) RETURNS int(11)
    COMMENT '检查字符串是否为汉字'
BEGIN
/*检查字符串是否为汉字 返回值:1-汉字 0-非汉字*/
DECLARE _ret, i, other_cnt, l_acode INT DEFAULT 0;
SET _ret = 0;
SET i = 1;
SET other_cnt = 0;
SET l_acode = 0;
WHILE i <= CHAR_LENGTH(p_str) DO
SET l_acode = ASCII(SUBSTRING(p_str, i, 1));
IF l_acode<124 or l_acode>254 THEN
SET other_cnt = other_cnt + 1;
END IF;
SET i = i + 1;
END WHILE;
IF other_cnt = 0 THEN
SET _ret = 1;
ELSE
SET _ret = 0;
END IF;
RETURN _ret;
END;
$
DELIMITER ;

猜你喜欢

转载自lkl.iteye.com/blog/2190514