mysql怎么判斷是否是數字

mysql中,可用REGEXP運算符與正則表達式“[^0-9.]”配合使用判斷數據是否是數字,語法為“字段 REGEXP ‘[^0-9.]’”;當該語句結果為“1”時,可以篩選不是數字的數據,當該語句結果為“0”時,篩選數值為數字的數據。

mysql怎么判斷是否是數字

本教程操作環境:windows10系統、mysql8.0.22版本、Dell G3電腦。

mysql怎么判斷是否是數字

大部分數字都是用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視頻教程

以上就是

? 版權聲明
THE END
喜歡就支持一下吧
點贊9 分享