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