Heim >Datenbank >MySQL-Tutorial >So ermitteln Sie, ob MySQL eine Zahl ist
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.
Die Betriebsumgebung dieses Tutorials: Windows10-System, MySQL8.0.22-Version, Dell G3-Computer.
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 istselect * 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:
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!