Maison >base de données >tutoriel mysql >Comment puis-je extraire des chiffres consécutifs des champs de texte MySQL ?

Comment puis-je extraire des chiffres consécutifs des champs de texte MySQL ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-30 15:15:13331parcourir

How Can I Extract Consecutive Digits from MySQL Text Fields?

Extraire des chiffres consécutifs à partir de champs de texte MySQL

Pour extraire efficacement des chiffres consécutifs à partir de champs de texte dans MySQL, il existe plusieurs approches :

Utilisation d'expressions régulières :

MySQL La prise en charge intégrée des expressions régulières peut être utilisée pour détecter les occurrences de deux chiffres consécutifs dans un champ de texte. Cependant, cette méthode n'extrait pas les chiffres dans un champ distinct.

Fonction personnalisée avec PCRE :

Pour des fonctionnalités avancées d'expression régulière, envisagez d'implémenter LIB_MYSQLUDF_PREG. Cette bibliothèque open source propose des fonctions telles que PREG_CAPTURE, PREG_POSITION, PREG_REPLACE et PREG_RLIKE, qui permettent d'extraire des correspondances spécifiques d'une chaîne.

Fonction personnalisée :

Une approche alternative consiste à créer une fonction personnalisée telle que REGEXP_EXTRACT pour extraire la sous-chaîne la plus longue correspondant au modèle d'expression régulière souhaité. Cette fonction vous permet de spécifier des ajustements de position de début et de fin pour capturer des chiffres sans inclure de caractères supplémentaires.

Critères supplémentaires :

Si vous devez filtrer les chiffres extraits par un valeur spécifique, telle que supérieure à 20, vous pouvez appliquer des critères supplémentaires dans votre requête MySQL après avoir obtenu les chiffres sous forme de field.

Exemple :

Considérez l'implémentation de fonction personnalisée suivante :

CREATE FUNCTION REGEXP_EXTRACT(string TEXT, exp TEXT)
RETURNS TEXT
DETERMINISTIC
BEGIN
  ...
  ...
END

Vous pouvez ensuite utiliser cette fonction dans votre requête pour extraire deux chiffres consécutifs du champ de texte original et filtrez-les par valeur :

SELECT `id`, REGEXP_EXTRACT(`originaltext`, '[0-9][0-9]') AS `digits`
FROM `source`
WHERE `digits` > 20;

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!

Déclaration:
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