Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie extrahiere ich das n-te Wort und zähle Wortvorkommen in einer MySQL-Zeichenfolge?

Das Folgende ist ein Lösungsvorschlag für das spezifische des OP Problem (Extrahieren des 2. Wortes einer Zeichenfolge), aber es sollte beachtet werden, dass, wie in der Antwort von mc0e angegeben, das eigentliche Extrahieren von Regex-Übereinstimmungen in MySQL nicht standardmäßig unterstützt wird. Wenn Sie das wirklich brauchen, dann haben Sie grundsätzlich die Wahl, 1) es in der Nachbearbeitung auf dem Client zu tun oder 2) eine MySQL-Erweiterung zu installieren, um es zu unterstützen.

BenWells hat es fast richtig. Ausgehend von seinem Code ist hier eine leicht angepasste Version:

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

Als funktionierendes Beispiel habe ich verwendet:

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

Dadurch wird das Wort IS erfolgreich extrahiert