共計 984 個字符,預(yù)計需要花費(fèi) 3 分鐘才能閱讀完成。
本篇內(nèi)容介紹了“mysql 如何判斷是否是數(shù)字”的有關(guān)知識,在實(shí)際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓丸趣 TV 小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
在 mysql 中,可用 REGEXP 運(yùn)算符與正則表達(dá)式“[^0-9.]”配合使用判斷數(shù)據(jù)是否是數(shù)字,語法為“字段 REGEXP [^0-9.]”;當(dāng)該語句結(jié)果為“1”時,可以篩選不是數(shù)字的數(shù)據(jù),當(dāng)該語句結(jié)果為“0”時,篩選數(shù)值為數(shù)字的數(shù)據(jù)。
本教程操作環(huán)境:windows10 系統(tǒng)、mysql8.0.22 版本、Dell G3 電腦。
mysql 怎么判斷是否是數(shù)字
大部分?jǐn)?shù)字都是用 int 或者 bigint 存儲,但是也有部分字段會用字符串存儲數(shù)字,所以,當(dāng)我們需要判斷字符串格式是否全為數(shù)字的時候,就會遇到該問題了。
那么,怎么判斷呢?
方法
采用 mysql 的 REGEXP 運(yùn)算符
{String} REGEXP [^0-9.]
前面的字符串是我們要做判斷的,后面的字符串是 mysql 的正則表達(dá)式,意思是 匹配不是數(shù)字或者小數(shù)點(diǎn)的字符。
如果 String 中含有不是 0 - 9 之間的數(shù)字或者是小數(shù)點(diǎn)時, 返回 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ù)字的記錄
注意:如果字符串中有空格,也會匹配到正則表達(dá)式,返回 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 如何判斷是否是數(shù)字”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注丸趣 TV 網(wǎng)站,丸趣 TV 小編將為大家輸出更多高質(zhì)量的實(shí)用文章!