Amazon Ads

2014年4月23日 星期三

【筆記】MySQL判斷varchar型態欄位值是否為數字

在網路上搜尋了一下,在MySQL 中好像沒有內建的函式,可以用來判斷varchar型態的欄位中的字串是否含有「不是數字」的字元,後來找到有人使用正規表示式來做判斷,如下:
SELECT * 
FROM  `emp` 
WHERE phone NOT REGEXP ('(^[0-9]+$)')
結果:


從上列的結果可以得知,只要是欄位中的值有不是數字的字元,就會符合條件。

若要查詢只有數字的值的話,就把NOT拿掉。

MySQL中,REGEXP是用來判斷要比對的字串,是否有符合定義的模式,若有符合會回傳1,若不符合則回傳0,如:
SELECT 'a' REGEXP '^[a-d]';
-- 結果為 1
詳細說明可以參考MySQLRegular Expressions文件

參考來源: