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

Hvordan udtrækkes det n'te ord og tælles ordforekomster i en MySQL-streng?

Følgende er en foreslået løsning til OP's specifikke problem (udtrække det 2. ord i en streng), men det skal bemærkes, at som mc0e's svar angiver, er faktisk udtrækning af regex-matches ikke understøttet direkte i MySQL. Hvis du virkelig har brug for dette, så er dine valg grundlæggende at 1) gøre det i efterbehandling på klienten eller 2) installere en MySQL-udvidelse for at understøtte det.

BenWells har det næsten rigtigt. Ud fra hans kode er her en lidt tilpasset version:

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

Som et fungerende eksempel brugte jeg:

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

Dette udtrækker ordet IS



  1. PostgreSQL - Skrivning af dynamisk sql i lagret procedure, der returnerer et resultatsæt

  2. Sådan opretter du ADDM-opgave og kontrollerer dens rapport

  3. ORA-24247:netværksadgang nægtet af adgangskontrolliste (ACL)

  4. SQL Server – Dissekere det interne af sp_spaceused