Maison > base de données > tutoriel mysql > Comment extraire des chiffres consécutifs d'un champ de texte MySQL et appliquer des critères supplémentaires ?

Comment extraire des chiffres consécutifs d'un champ de texte MySQL et appliquer des critères supplémentaires ?

Barbara Streisand
Libérer: 2024-12-18 13:15:19
original
628 Les gens l'ont consulté

How to Extract Consecutive Digits from a MySQL Text Field and Apply Additional Criteria?

Extraire des chiffres consécutifs d'un champ de texte MySQL

Dans MySQL, la requête suivante peut détecter des champs de texte contenant des nombres à 2 chiffres :

SELECT `id`, `originaltext` FROM `source` WHERE `originaltext` regexp '[0-9][0-9]'
Copier après la connexion

Cependant, pour manipuler ces nombres en tant que champ distinct, un traitement supplémentaire est nécessaire. Voici deux solutions potentielles :

Utilisation de LIB_MYSQLUDF_PREG

LIB_MYSQLUDF_PREG est une bibliothèque MySQL qui améliore la fonctionnalité des expressions régulières. Il introduit des fonctions comme PREG_CAPTURE, qui peuvent extraire des correspondances d'une chaîne.

Pour utiliser cette bibliothèque, vous devez l'installer sur votre serveur MySQL. Une fois installé, vous pouvez utiliser la requête suivante pour extraire des chiffres consécutifs :

SELECT `id`, PREG_CAPTURE('[0-9][0-9]', `originaltext`) AS `digits` FROM `source`
Copier après la connexion

Utilisation d'une fonction MySQL personnalisée

Vous pouvez également définir une fonction MySQL personnalisée qui effectue l'extraction. Par exemple, la fonction suivante extraira la première séquence de chiffres correspondante la plus longue :

CREATE FUNCTION REGEXP_EXTRACT(string TEXT, exp TEXT)
RETURNS TEXT
DETERMINISTIC
BEGIN
  DECLARE s INT DEFAULT 1;
  ...
  -- Implementation to extract the matching digits
  ...
END
Copier après la connexion

Pour utiliser cette fonction, appelez-la comme suit :

SELECT `id`, REGEXP_EXTRACT(`originaltext`, '[0-9][0-9]') AS `digits` FROM `source`
Copier après la connexion

Critères supplémentaires ( Nombres > 20)

Pour ajouter le critère selon lequel les nombres doivent être supérieurs à 20, ajoutez simplement cette condition à la clause WHERE de l'une ou l'autre requête :

WHERE `digits` > 20
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal