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?

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Lepaskan: 2023-08-25 12:17:03
ke hadapan
2229 orang telah melayarinya

在 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);
Salin selepas log masuk

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)
Salin selepas log masuk

Kes 2 - Menyemak hanya nilai integer

mysql> select cast('123456' AS UNSIGNED);
Salin selepas log masuk

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)
Salin selepas log masuk

Logik ini juga berfungsi dengan baik untuk terapung.

Berikut ialah pertanyaan untuk nilai titik terapung.

mysql>  SELECT CAST('78.90' AS UNSIGNED);
Salin selepas log masuk

Ini adalah outputnya.

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

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)
Salin selepas log masuk

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)
Salin selepas log masuk

Tunjukkan semua rekod.

mysql> select *from CheckingIntegerDemo;
Salin selepas log masuk

Ini adalah outputnya.

+------------+
| Value      |
+------------+
| John123456 |
| 123456     |
| 123.456    |
+------------+
3 rows in set (0.00 sec
Salin selepas log masuk

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]+$';
Salin selepas log masuk

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

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

Berikut ialah output.

+--------+
| Value  |
+--------+
| 123456 |
+--------+
1 row in set (0.00 sec)
Salin selepas log masuk

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 Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan