要檢查給定值是否是字串,我們使用cast()函數。如果該值不是數字則傳回 0,否則傳回數字值。這樣我們就可以檢查該值是否為整數。
mysql> select cast('John123456' AS UNSIGNED);
以下是輸出。表示該值不是數字,因此傳回0。
+--------------------------------+ | cast('John123456' AS UNSIGNED) | +--------------------------------+ | 0 | +--------------------------------+ 1 row in set, 1 warning (0.00 sec)
mysql> select cast('123456' AS UNSIGNED);
以下是輸出。它表示該值是數字,因此傳回值本身。
+----------------------------+ | cast('123456' AS UNSIGNED) | +----------------------------+ | 123456 | +----------------------------+ 1 row in set (0.00 sec)
這個邏輯對於浮動也很有效。
以下是浮點數值的查詢。
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)
以上是在 MySQL 中如何檢查一個值是否為整數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!