Heim >Datenbank >MySQL-Tutorial >So ermitteln Sie, ob MySQL eine Zahl ist

So ermitteln Sie, ob MySQL eine Zahl ist

WBOY
WBOYOriginal
2022-02-24 11:44:4912475Durchsuche

In MySQL können Sie den REGEXP-Operator mit dem regulären Ausdruck „[^0-9.]“ verwenden, um zu bestimmen, ob die Daten eine Zahl sind. Die Syntax lautet „field REGEXP '[^0-9.]'“; Wenn das Ergebnis dieser Anweisung „1“ ist, können Sie die Daten filtern, die keine Zahl sind. Wenn das Ergebnis der Anweisung „0“ ist, können Sie die Daten filtern, deren Wert eine Zahl ist.

So ermitteln Sie, ob MySQL eine Zahl ist

Die Betriebsumgebung dieses Tutorials: Windows10-System, MySQL8.0.22-Version, Dell G3-Computer.

So ermitteln Sie, ob MySQL eine Zahl ist

Die meisten Zahlen werden in int oder bigint gespeichert, aber einige Felder verwenden Zeichenfolgen zum Speichern von Zahlen. Daher ist dieses Problem aufgetreten, wenn wir feststellen müssen, ob das Zeichenfolgenformat alle Zahlen enthält .

Wie soll man also urteilen?

Methode

Verwendet den REGEXP-Operator von MySQL

{String} REGEXP '[^0-9.]'

Die vorherige Zeichenfolge ist das, was wir beurteilen müssen, und die folgende Zeichenfolge ist der reguläre Ausdruck von MySQL, was bedeutet, dass Zeichen übereinstimmen, die keine Zahlen oder Dezimalstellen sind.

Wenn der String eine Zahl enthält, die nicht zwischen 0 und 9 oder einem Dezimalpunkt liegt, wird „true“ zurückgegeben, andernfalls wird „false“ zurückgegeben.

Verwendung

select ('123a' REGEXP '[^0-9.]');

--'123a' enthält das Zeichen 'a'. Das Ausgabeergebnis der Konstante true in MySQL ist 1. Die Ausgabe von false ist 0

select * from tablename where (name REGEXP '[^0-9.]') = 1

Fragen Sie die Datensätze ab, deren Name nur aus Zahlen besteht

Hinweis: Wenn das Zeichen Leerzeichen in der Zeichenfolge enthält, wird der reguläre Ausdruck abgeglichen und 1 zurückgegeben. Wenn Sie die Leerzeichen an beiden Enden entfernen möchten, müssen Sie die Funktion trim() für die zu beurteilende Zeichenfolge verwenden.

#Fragen Sie die Daten ab, deren Geschwindigkeitsspalte keine Zahl ist

select * from standard_csbi_service_tree_1d_full where (‘2134’ REGEXP ‘[^0-9.]’)=1;

#Fragen Sie die Daten ab, deren Geschwindigkeitsspalte eine Zahl ist

select * from standard_csbi_service_tree_1d_full where (speed REGEXP ‘[^0-9.]’)=0;

Empfohlenes Lernen:

MySQL-Video-Tutorial

Das obige ist der detaillierte Inhalt vonSo ermitteln Sie, ob MySQL eine Zahl ist. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn