Mysql
 sql >> Database >  >> RDS >> Mysql

Come estrarre l'ennesima parola e contare le occorrenze di parole in una stringa MySQL?

Quella che segue è una soluzione proposta per lo specifico del PO problema (estraendo la seconda parola di una stringa), ma va notato che, come afferma la risposta di mc0e, l'estrazione di corrispondenze regolari non è supportata immediatamente in MySQL. Se ne hai davvero bisogno, le tue scelte sono sostanzialmente 1) eseguirlo in post-elaborazione sul client o 2) installare un'estensione MySQL per supportarlo.

BenWells ha quasi quasi corretto. Lavorando dal suo codice, ecco una versione leggermente modificata:

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

Come esempio di lavoro, ho usato:

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

Questo estrae con successo la parola IS