在mysql中,可以利用REGEXP運算符判斷數(shù)據(jù)是否是數(shù)字類型,語法為“String REGEXP ‘[^0-9.]’”;該運算符是正則表達式的縮寫,若數(shù)據(jù)字符中含有數(shù)字時,返回的結(jié)果是true,反之返回的結(jié)果是false。
本教程操作環(huán)境:windows10系統(tǒng)、mysql8.0.22版本、Dell G3電腦。
mysql怎么判斷是否是數(shù)字類型
采用mysql的 REGEXP運算符
REGEXP運算符,是正則表達式(regular expression)的縮寫,正則表達式在搜索字符串時非常強大,下面是關(guān)于它的應(yīng)用
{String}?REGEXP?'[^0-9.]'
前面的字符串是我們要做判斷的, 后面的字符串是mysql的正則表達式,意思是 匹配不是數(shù)字或者小數(shù)點的字符。
如果String中含有不是0-9之間的數(shù)字或者是小數(shù)點時,返回true ,反之則返回false。
用法
select?('123a'?REGEXP?'[^0-9.]');
–‘123a’中含有字符’a’ 輸出結(jié)果為1 mysql中常量true輸出為1 false輸出為0
select?*?from?tablename?where?(name?REGEXP?'[^0-9.]')?=?1
查詢name全為數(shù)字的記錄
注意:如果字符串中有空格,也會匹配到正則表達式,返回1。如果是要去掉兩端的空格,就要將判斷的字符串,就要對字符串使用 trim()函數(shù)了。
#查詢speed列不是數(shù)字的數(shù)據(jù)
select?*?from?standard_csbi_service_tree_1d_full?where?(‘2134’?REGEXP?‘[^0-9.]’)=1;
#查詢speed列是數(shù)字的數(shù)據(jù)
select?*?from?standard_csbi_service_tree_1d_full?where?(speed?REGEXP?‘[^0-9.]’)=0;
推薦學習:mysql視頻教程
? 版權(quán)聲明
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載。
THE END
喜歡就支持一下吧
相關(guān)推薦