mysql 判断字符串中是不是有汉字
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 ;