MySQL中提供了一個函數叫做isnumber,作用是判斷一個字符串是否為數字。
SELECT isnumber('12345'); -- 返回1,說明字符串是數字 SELECT isnumber('12.34'); -- 返回1,說明字符串是數字 SELECT isnumber('1a2b3c'); -- 返回0,說明字符串不是數字
從上面的例子可以看出,isnumber函數會自動把字符串轉換成數字,并返回一個布爾值(1代表是數字,0代表不是數字)。
isnumber函數可以很方便地用于數據驗證和類型轉換。比如:
SELECT IF(isnumber('12345'), CAST('12345' AS UNSIGNED), 0); -- 如果字符串是數字,則轉換成無符號整數,否則返回0
需要注意的是,isnumber函數只能判斷基本的數字類型,比如整數和浮點數,而不能判斷復雜的數字類型,比如十六進制和科學計數法。