Extraire des mots et compter les occurrences dans des chaînes MySQL
Question :
Vous recherchez un MySQL requête similaire à la suivante :
select <second word in text> word, count(*) from table group by word;
Existe-t-il une syntaxe pour extraire le texte à partir d'expressions utilisant des expressions régulières dans MySQL ?
Réponse :
Bien que l'extraction directe des correspondances d'expressions régulières ne soit pas prise en charge dans la fonctionnalité MySQL par défaut, comme le mentionne mc0e, il existe une solution pour extraire un mot spécifique dans une chaîne en utilisant une combinaison de chaîne fonctions :
SUBSTRING( sentence, LOCATE(' ', sentence) + CHAR_LENGTH(' '), LOCATE(' ', sentence, ( LOCATE(' ', sentence) + 1 ) - ( LOCATE(' ', sentence) + CHAR_LENGTH(' ') ) )
Utilisation :
Pour extraire le deuxième mot d'une chaîne, vous pouvez utiliser la requête suivante :
SELECT SUBSTRING( sentence, LOCATE(' ', sentence) + CHAR_LENGTH(' '), LOCATE(' ', sentence, ( LOCATE(' ', sentence) + 1 ) - ( LOCATE(' ', sentence) + CHAR_LENGTH(' ') ) ) as string FROM (SELECT 'THIS IS A TEST' AS sentence) temp
Cela renverra le mot "IS" comme sortie.
Remarque :
Si l'extraction de correspondances d'expressions régulières est un besoin récurrent, envisagez de post-traiter les résultats sur le client ou d'installer une extension MySQL prenant en charge l'extraction d'expressions régulières.
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!