Dans MySQL, vous pouvez utiliser l'opérateur REGEXP avec l'expression régulière "[^0-9.]" pour déterminer si les données sont un nombre. La syntaxe est "field REGEXP '[^0-9.]'" ; lorsque cette instruction Lorsque le résultat est "1", vous pouvez filtrer les données qui ne sont pas un nombre. Lorsque le résultat de l'instruction est "0", vous pouvez filtrer les données dont la valeur est un nombre.
L'environnement d'exploitation de ce tutoriel : système windows10, version mysql8.0.22, ordinateur Dell G3.
La plupart des nombres sont stockés dans int ou bigint, mais certains champs utilisent des chaînes pour stocker des nombres. Par conséquent, lorsque nous devons déterminer si le format de chaîne est entièrement composé de nombres, nous rencontrerons ce problème. .
Alors, comment juger ?
Méthode
Utilise l'opérateur REGEXP de MySQL
{String} REGEXP '[^0-9.]'
La chaîne précédente est ce que nous devons juger, et la chaîne suivante est l'expression régulière de MySQL, ce qui signifie faire correspondre des caractères qui ne sont pas des nombres ou des points décimaux.
Si la chaîne contient un nombre qui n'est pas compris entre 0 et 9 ou un point décimal, elle renvoie vrai, sinon elle renvoie faux.
Usage
select ('123a' REGEXP '[^0-9.]');
--'123a' contient le caractère 'a'. Le résultat de sortie de la constante true dans MySQL est 1. La sortie de false est 0
select * from tablename where (name REGEXP '[^0-9.]') = 1
Interrogez les enregistrements dont le nom est composé uniquement de chiffres
.Remarque : si le caractère S'il y a des espaces dans la chaîne, l'expression régulière sera mise en correspondance et 1 sera renvoyé. Si vous souhaitez supprimer les espaces aux deux extrémités, vous devez utiliser la fonction trim() sur la chaîne que vous jugez.
#Interroger les données dont la colonne de vitesse n'est pas un nombre
select * from standard_csbi_service_tree_1d_full where (‘2134’ REGEXP ‘[^0-9.]’)=1;
#Interroger les données dont la colonne de vitesse est un nombre
select * from standard_csbi_service_tree_1d_full where (speed REGEXP ‘[^0-9.]’)=0;
Apprentissage recommandé : Tutoriel vidéo MySQL
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!