Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment extraire le nième mot et compter les occurrences de mots dans une chaîne MySQL ?

Ce qui suit est une solution proposée pour le spécifique du PO problème (extraction du 2ème mot d'une chaîne), mais il convient de noter que, comme l'indique la réponse de mc0e, l'extraction des correspondances de regex n'est pas prise en charge par défaut dans MySQL. Si vous en avez vraiment besoin, alors vos choix sont essentiellement de 1) le faire en post-traitement sur le client, ou 2) installer une extension MySQL pour le prendre en charge.

BenWells a presque raison. En travaillant à partir de son code, voici une version légèrement ajustée :

SUBSTRING(
  sentence,
  LOCATE(' ', sentence) + CHAR_LENGTH(' '),
  LOCATE(' ', sentence,
  ( LOCATE(' ', sentence) + 1 ) - ( LOCATE(' ', sentence) + CHAR_LENGTH(' ') )
)

Comme exemple de travail, j'ai utilisé :

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 extrait avec succès le mot IS