Rumah >pangkalan data >tutorial mysql >Bagaimana untuk menyemak sama ada nilai adalah integer dalam 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.
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)
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)
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!