Rumah >pangkalan data >tutorial mysql >Bagaimana untuk menyemak sama ada nilai adalah integer dalam MySQL?

Bagaimana untuk menyemak sama ada nilai adalah integer dalam MySQL?

WBOY
WBOYke hadapan
2023-08-25 12:17:032038semak imbas

在 MySQL 中如何检查一个值是否为整数?

Untuk menyemak sama ada nilai yang diberikan ialah rentetan, kami menggunakan fungsi cast(). Mengembalikan 0 jika nilainya bukan nombor, sebaliknya mengembalikan nilai angka. Dengan cara ini kita boleh menyemak sama ada nilai itu adalah integer.

Kes 1 - Menyemak rentetan dengan integer

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

Berikut ialah output. Menunjukkan bahawa nilai itu bukan nombor, jadi 0 dikembalikan.

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

Kes 2 - Menyemak hanya nilai integer

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

Berikut ialah output. Ia menunjukkan bahawa nilai adalah nombor, jadi nilai itu sendiri dikembalikan.

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

Logik ini juga berfungsi dengan baik untuk terapung.

Berikut ialah pertanyaan untuk nilai titik terapung.

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

Ini adalah outputnya.

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

Logik alternatif dengan pengendali biasa

Ia berfungsi untuk semua keadaan dengan sebarang nilai, walaupun nombor titik terapung.

Jom buat jadual baharu.

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

Masukkan rekod ke dalam jadual.

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)

Tunjukkan semua rekod.

mysql> select *from CheckingIntegerDemo;

Ini adalah outputnya.

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

Dalam output di atas, hanya 123456 ialah integer, dan selebihnya bukan integer.

Sintaks untuk menyemak sama ada nilai ialah integer.

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

Kami menggunakan pertanyaan ungkapan biasa. Ini hanya akan mengeluarkan nilai integer.

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

Berikut ialah output.

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

Atas ialah kandungan terperinci Bagaimana untuk menyemak sama ada nilai adalah integer dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam