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!