Maison > base de données > tutoriel mysql > Comment puis-je extraire le Nième mot et compter ses occurrences dans MySQL et PostgreSQL ?

Comment puis-je extraire le Nième mot et compter ses occurrences dans MySQL et PostgreSQL ?

Mary-Kate Olsen
Libérer: 2024-12-08 21:30:12
original
255 Les gens l'ont consulté

How Can I Extract the Nth Word and Count its Occurrences in MySQL and PostgreSQL?

Extraire le Nième mot et compter les occurrences de mots dans MySQL

La question posée concerne la possibilité d'une requête MySQL pouvant extraire un mot spécifique à partir d'une chaîne de texte et compter ses occurrences. L'exemple fourni cherche à extraire le deuxième mot du texte.

Solution de requête pour Postgres

Bien que MySQL ne prenne pas en charge nativement l'extraction directe de correspondances d'expressions régulières, d'autres bases de données comme PostgreSQL proposer une approche plus simple. Dans PostgreSQL, la requête suivante peut être utilisée :

SELECT word, count(*)
FROM (
  SELECT SPLIT_PART(text, ' ', 2) AS word
  FROM (SELECT 'THIS IS A TEST' AS text) AS tmp
) AS words
GROUP BY word;
Copier après la connexion

Cette requête utilise la fonction SPLIT_PART pour diviser le texte en mots individuels en fonction des espaces et extrait le deuxième mot. Le tableau résultant regroupe les mots en fonction de leur occurrence.

Solution de contournement pour MySQL

Pour MySQL, une approche différente est requise car l'extraction directe d'expressions régulières n'est pas prise en charge. Une solution de contournement consiste à utiliser une combinaison de fonctions de sous-chaîne et de localisation :

SELECT SUBSTRING(
  text,
  LOCATE(' ', text) + CHAR_LENGTH(' '),
  LOCATE(' ', text, ( LOCATE(' ', text) + 1 ) - ( LOCATE(' ', text) + CHAR_LENGTH(' ') )
) AS word, count(*)
FROM (SELECT 'THIS IS A TEST' AS text) AS tmp
GROUP BY word;
Copier après la connexion

Cette requête localise la position du premier espace dans le texte, qui se trouverait après le premier mot. Il ajoute ensuite la longueur d'un espace à cette position pour lancer l'extraction du deuxième mot. La longueur de la sous-chaîne extraite est calculée en localisant l'espace suivant et en en soustrayant la position de départ.

Cette méthode nécessite un ajustement pour extraire différents nièmes mots.

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