MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLで値が整数であるかどうかを確認するにはどうすればよいですか?


指定された値が文字列であるかどうかを確認するには、cast()関数を使用します。値が数値でない場合は0を返し、そうでない場合は数値を返します。このようにして、値が整数であるかどうかを確認できます。

ケース1-整数を含む文字列をチェックする

mysql> select cast('John123456' AS UNSIGNED);

以下は出力です。値が数値ではないため、0が返されることを示しています。

+--------------------------------+
| cast('John123456' AS UNSIGNED) |
+--------------------------------+
|                              0 |
+--------------------------------+
1 row in set, 1 warning (0.00 sec)
>

ケース2-整数値のみをチェックする

mysql> select cast('123456' AS UNSIGNED);

以下は出力です。値が数値であることを示しているため、値自体が返されます。

+----------------------------+
| cast('123456' AS UNSIGNED) |
+----------------------------+
|                     123456 |
+----------------------------+
1 row in set (0.00 sec)

このロジックはfloatでもうまく機能します。

以下は、float値を使用したクエリです。

mysql>  SELECT CAST('78.90' AS UNSIGNED);

これが出力です。

+---------------------------+
| CAST('78.90' AS UNSIGNED) |
+---------------------------+
|                        78 |
+---------------------------+
1 row in set, 1 warning (0.00 sec)

通常の演算子を使用した代替ロジック

フロートも含め、あらゆる値のすべての条件で機能します。

新しいテーブルを作成しましょう。

mysql> create table CheckingIntegerDemo
   -> (
   -> Value varchar(200)
   -> );
Query OK, 0 rows affected (0.88 sec)

テーブルにレコードを挿入します。

mysql> insert into CheckingIntegerDemo values('John123456');
Query OK, 1 row affected (0.10 sec)

mysql>  insert into CheckingIntegerDemo values('123456');
Query OK, 1 row affected (0.16 sec)

mysql> insert into CheckingIntegerDemo values('123.456');
Query OK, 1 row affected (0.16 sec)

すべてのレコードを表示します。

mysql> select *from CheckingIntegerDemo;

これが出力です。

+------------+
| Value      |
+------------+
| John123456 |
| 123456     |
| 123.456    |
+------------+
3 rows in set (0.00 sec

上記の出力では、123456のみが整数であり、残りは整数ではありません。

値が整数かどうかを確認するための構文。

select yourColumnName from yourTableName where yourColumnName REGEXP '^-?[0-9]+$';

正規表現を使用したクエリ。これにより、整数値のみが出力されます。

mysql> select Value from CheckingIntegerDemo where Value REGEXP '^-?[0-9]+$';

以下は出力です。

+--------+
| Value  |
+--------+
| 123456 |
+--------+
1 row in set (0.00 sec)

  1. MySQLの列値の前に文字列を追加するにはどうすればよいですか?

    MySQLの列値の前に文字列を追加するには、関数CONCATを使用できます。 CONCAT関数はUPDATEステートメントで使用できます。 テーブルを作成します。 mysql> create table PrependStringOnCOlumnName   -> (   -> Id int,   -> Name varchar(200)   -> ); Query OK, 0 rows affected (1.35 sec) いくつかのレコードを挿入します。 mysql> insert into PrependStringOnCOlumn

  2. MySQLでどのデータベースが選択されているかを確認するにはどうすればよいですか?

    これは、dualのDATABASE()メソッドを使用して確認できます。データベースビジネスを使用しているとします。クエリは次のとおりです- mysql> use business; Database changed これで、デュアルからDATABASE()を使用して、どのデータベースが選択されているかを確認できます。クエリは次のとおりです- mysql> SELECT DATABASE() FROM DUAL; これが出力です。 +------------+ | DATABASE() | +------------+ | business | +---------