Heim  >  Artikel  >  Datenbank  >  Wie überprüfe ich, ob ein Wert in MySQL eine Ganzzahl ist?

Wie überprüfe ich, ob ein Wert in MySQL eine Ganzzahl ist?

WBOY
WBOYnach vorne
2023-08-25 12:17:031933Durchsuche

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

Um zu überprüfen, ob ein gegebener Wert eine Zeichenfolge ist, verwenden wir die Funktion cast(). Gibt 0 zurück, wenn der Wert keine Zahl ist, andernfalls wird ein numerischer Wert zurückgegeben. Auf diese Weise können wir überprüfen, ob der Wert eine Ganzzahl ist.

Fall 1 – Überprüfen einer Zeichenfolge mit einer Ganzzahl

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

Das Folgende ist die Ausgabe. Gibt an, dass der Wert keine Zahl ist und daher 0 zurückgegeben wird.

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

Fall 2 – Nur ganzzahlige Werte prüfen

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

Das Folgende ist die Ausgabe. Es zeigt an, dass der Wert eine Zahl ist, sodass der Wert selbst zurückgegeben wird.

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

Diese Logik funktioniert auch gut für Floats.

Das Folgende ist eine Abfrage für Gleitkommawerte.

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

Dies ist die Ausgabe.

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

Alternative Logik mit regulären Operatoren

Es funktioniert für alle Bedingungen mit jedem Wert, sogar Gleitkommazahlen.

Lassen Sie uns eine neue Tabelle erstellen.

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

Datensätze in die Tabelle einfügen.

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)

Alle Datensätze anzeigen.

mysql> select *from CheckingIntegerDemo;

Dies ist die Ausgabe.

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

In der obigen Ausgabe ist nur 123456 eine Ganzzahl und der Rest sind keine Ganzzahlen.

Syntax zum Überprüfen, ob ein Wert eine Ganzzahl ist.

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

Wir verwenden Abfragen mit regulären Ausdrücken. Dadurch werden nur ganzzahlige Werte ausgegeben.

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

Das Folgende ist die Ausgabe.

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

Das obige ist der detaillierte Inhalt vonWie überprüfe ich, ob ein Wert in MySQL eine Ganzzahl ist?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen