您好,登錄后才能下訂單哦!
本篇內容介紹了“mysql如何判斷是否是數字”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
在mysql中,可用REGEXP運算符與正則表達式“[^0-9.]”配合使用判斷數據是否是數字,語法為“字段 REGEXP '[^0-9.]'”;當該語句結果為“1”時,可以篩選不是數字的數據,當該語句結果為“0”時,篩選數值為數字的數據。
本教程操作環境:windows10系統、mysql8.0.22版本、Dell G3電腦。
大部分數字都是用int或者bigint存儲,但是也有部分字段會用字符串存儲數字,所以,當我們需要判斷字符串格式是否全為數字的時候,就會遇到該問題了。
那么,怎么判斷呢?
方法
采用mysql的 REGEXP運算符
{String} REGEXP '[^0-9.]'
前面的字符串是我們要做判斷的, 后面的字符串是mysql的正則表達式,意思是 匹配不是數字或者小數點的字符。
如果String中含有不是0-9之間的數字或者是小數點時,返回true ,反之則返回false。
用法
select ('123a' REGEXP '[^0-9.]');
--‘123a'中含有字符'a' 輸出結果為1 mysql中常量true輸出為1 false輸出為0
select * from tablename where (name REGEXP '[^0-9.]') = 1
查詢name全為數字的記錄
注意:如果字符串中有空格,也會匹配到正則表達式,返回1。如果是要去掉兩端的空格,就要將判斷的字符串,就要對字符串使用 trim()函數了。
#查詢speed列不是數字的數據
select * from standard_csbi_service_tree_1d_full where (‘2134’ REGEXP ‘[^0-9.]’)=1;
#查詢speed列是數字的數據
select * from standard_csbi_service_tree_1d_full where (speed REGEXP ‘[^0-9.]’)=0;
“mysql如何判斷是否是數字”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。