Heim >Datenbank >MySQL-Tutorial >Wie kann ich das N-te Wort extrahieren und seine Vorkommen in MySQL und PostgreSQL zählen?

Wie kann ich das N-te Wort extrahieren und seine Vorkommen in MySQL und PostgreSQL zählen?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-08 21:30:12273Durchsuche

How Can I Extract the Nth Word and Count its Occurrences in MySQL and PostgreSQL?

Das N-te Wort extrahieren und Wortvorkommen in MySQL zählen

Die gestellte Frage betrifft die Möglichkeit einer MySQL-Abfrage, die ein bestimmtes Wort extrahieren kann aus einer Textzeichenfolge und zählen Sie deren Vorkommen. Das bereitgestellte Beispiel versucht, das zweite Wort aus dem Text zu extrahieren.

Abfragelösung für Postgres

Während MySQL nativ keine direkte Regex-Match-Extraktion unterstützt, unterstützen andere Datenbanken wie PostgreSQL bieten einen einfacheren Ansatz. In PostgreSQL könnte die folgende Abfrage verwendet werden:

SELECT word, count(*)
FROM (
  SELECT SPLIT_PART(text, ' ', 2) AS word
  FROM (SELECT 'THIS IS A TEST' AS text) AS tmp
) AS words
GROUP BY word;

Diese Abfrage verwendet die Funktion SPLIT_PART, um den Text anhand von Leerzeichen in einzelne Wörter aufzuteilen und das zweite Wort zu extrahieren. Die resultierende Tabelle gruppiert Wörter nach ihrem Vorkommen.

Problemumgehung für MySQL

Für MySQL ist ein anderer Ansatz erforderlich, da die direkte Regex-Extraktion nicht unterstützt wird. Eine Problemumgehung besteht darin, eine Kombination aus Teilzeichenfolgen- und Suchfunktionen zu verwenden:

SELECT SUBSTRING(
  text,
  LOCATE(' ', text) + CHAR_LENGTH(' '),
  LOCATE(' ', text, ( LOCATE(' ', text) + 1 ) - ( LOCATE(' ', text) + CHAR_LENGTH(' ') )
) AS word, count(*)
FROM (SELECT 'THIS IS A TEST' AS text) AS tmp
GROUP BY word;

Diese Abfrage ermittelt die Position des ersten Leerzeichens im Text, das nach dem ersten Wort wäre. Anschließend wird dieser Position die Länge eines Leerzeichens hinzugefügt, um mit der Extraktion des zweiten Wortes zu beginnen. Die Länge der extrahierten Teilzeichenfolge wird berechnet, indem das nächste Leerzeichen lokalisiert und die Startposition davon subtrahiert wird.

Diese Methode erfordert eine Anpassung zum Extrahieren verschiedener n-ter Wörter.

Das obige ist der detaillierte Inhalt vonWie kann ich das N-te Wort extrahieren und seine Vorkommen in MySQL und PostgreSQL zählen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn