sql >> Databáze >  >> RDS >> Mysql

Jak extrahovat n-té slovo a počítat výskyty slov v řetězci MySQL?

Následuje návrh řešení pro specifické OP problém (extrahování 2. slova řetězce), ale je třeba poznamenat, že jak uvádí odpověď mc0e, ve skutečnosti extrakce shod regulárních výrazů není v MySQL přímo podporována. Pokud to opravdu potřebujete, pak máte na výběr v zásadě 1) provést to v následném zpracování na klientovi nebo 2) nainstalovat rozšíření MySQL, které to podporuje.

BenWells to má téměř správně. Zde je mírně upravená verze z jeho kódu:

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

Jako pracovní příklad jsem použil:

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

Tím se úspěšně extrahuje slovo IS



  1. Docker:Kombinace více obrázků

  2. Syntaxe SQL DELETE – uvedena podle DBMS

  3. Architektura SQL Server AlwaysOn ( Availability Group ) a instalace krok za krokem -2

  4. 7 způsobů, jak vrátit duplicitní řádky, které mají primární klíč v MariaDB