Heim > Datenbank > MySQL-Tutorial > Wie extrahiere ich das n-te Wort und zähle Wortvorkommen in MySQL?

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

DDD
Freigeben: 2024-12-08 03:32:11
Original
923 Leute haben es durchsucht

How to Extract the nth Word and Count Word Occurrences in MySQL?

Das n-te Wort extrahieren und Wortvorkommen in einem MySQL-String zählen

Im Bereich von Datenbankabfragen kann das Extrahieren bestimmter Textelemente aus einem bestimmten String eine häufige Anforderung sein . Trotz seiner robusten SQL-Funktionen fehlt MySQL die native Unterstützung für die direkte Extraktion von Textteilen, die einem regulären Ausdruck entsprechen.

n-te Wortextraktion

Um das n-te Wort aus einer MySQL-Zeichenfolge zu extrahieren, können wir die nutzen SUBSTRING- und LOCATE-Funktionen. SUBSTRING ermöglicht es uns, einen bestimmten Abschnitt der Zeichenfolge zu extrahieren, während LOCATE das erste Vorkommen einer bestimmten Teilzeichenfolge findet.

Angenommen, wir möchten das zweite Wort aus der Zeichenfolge „Dies ist ein Test“ extrahieren. Das folgende Codebeispiel demonstriert dies:

SUBSTRING(
  sentence,
  LOCATE(' ', sentence) + CHAR_LENGTH(' '),
  LOCATE(' ', sentence,
  ( LOCATE(' ', sentence) + 1 ) - ( LOCATE(' ', sentence) + CHAR_LENGTH(' ') )
)
Nach dem Login kopieren

Dieser Code identifiziert zunächst die Position des ersten Leerzeichens mithilfe von LOCATE. Anschließend wird die Länge des Leerzeichens hinzugefügt, um an den Anfang des zweiten Worts zu gelangen. Schließlich findet es das nächste Leerzeichen, berechnet seine Länge und subtrahiert es, um die entsprechende Länge für SUBSTRING zu erhalten.

Wortvorkommensanzahl

Zum Zählen von Wortvorkommen in einer MySQL-Zeichenfolge, der GROUP Die BY-Klausel wird verwendet. Angenommen, wir haben eine Tabelle, die eine Spalte namens „text“ mit verschiedenen Texteinträgen enthält. Die folgende Abfrage würde das Vorkommen jedes Wortes in der Spalte „Text“ zählen:

SELECT word, COUNT(*)
FROM (
  SELECT sentence, SUBSTRING_INDEX(sentence, ' ', occurrence) AS word
  FROM (
    SELECT sentence,
    ROW_NUMBER() OVER (PARTITION BY sentence ORDER BY LOCATE(' ', sentence)) AS occurrence
    FROM table_name
  ) t
) subquery
GROUP BY word
Nach dem Login kopieren

Diese Abfrage verwendet eine Unterabfrage, um jedes Wort aus den Sätzen zu extrahieren und sie der Spalte „Wort“ zuzuweisen. ROW_NUMBER wird verwendet, um jedem Wort innerhalb eines Satzes eine Vorkommensnummer zuzuweisen und so sicherzustellen, dass jedes Wort einen eindeutigen Vorkommenswert hat. Die äußere Abfrage gruppiert dann nach dem extrahierten „Wort“, um dessen Vorkommen zu zählen.

Das obige ist der detaillierte Inhalt vonWie extrahiere ich das n-te Wort und zähle Wortvorkommen in MySQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage