ホームページ  >  記事  >  データベース  >  mysql が数値かどうかを判断する方法

mysql が数値かどうかを判断する方法

WBOY
WBOYオリジナル
2022-02-24 11:44:4912419ブラウズ

mysql では、REGEXP 演算子を正規表現 "[^0-9.]" と組み合わせて使用​​して、データが数値かどうかを判断できます。構文は "field REGEXP '[^0- 9.]'" ; ステートメントの結果が「1」の場合、数値以外のデータをフィルタリングできます。ステートメントの結果が「0」の場合、値が数値のデータをフィルタリングできます。

mysql が数値かどうかを判断する方法

このチュートリアルの動作環境: Windows10 システム、mysql8.0.22 バージョン、Dell G3 コンピューター。

mysql はそれが数値であるかどうかをどのように判断するのでしょうか

ほとんどの数値は int または bigint で格納されますが、一部のフィールドでは数値の格納に文字列が使用されるため、文字列形式がすべて数値の場合、この問題が発生します。

それでは、どうやって判断すればいいのでしょうか?

方法

mysqlのREGEXP演算子を使用します

{String} REGEXP '[^0-9.]'

最初の文字列は判断する必要があるもので、次の文字列はmysqlの正規表現です。数字や小数点ではない文字と一致します。

文字列に 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

名前がすべて数字であるクエリ レコード

注: 文字列にスペースが含まれている場合、正規表現も照合され、1 が返されます。両端のスペースを削除したい場合は、判定対象の文字列に対してtrim()関数を使用する必要があります。

#速度列が数値ではないデータをクエリする

select * from standard_csbi_service_tree_1d_full where (‘2134’ REGEXP ‘[^0-9.]’)=1;

#速度列が数値であるデータをクエリする

select * from standard_csbi_service_tree_1d_full where (speed REGEXP ‘[^0-9.]’)=0;

推奨学習: mysql ビデオ チュートリアル#

以上がmysql が数値かどうかを判断する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。