Problemstellung:
Zählen der Anzahl von Wörtern in einer MySQL-Datenbank Die Verwendung regulärer Ausdrücke in einer Spalte ist eine häufige Aufgabe. Der Standardansatz der Verwendung von LENGTH(name) - LENGTH(REPLACE(name, ' ', '') 1 greift jedoch zu kurz, wenn Wörter durch mehrere Leerzeichen getrennt werden. Diese Frage befasst sich mit einer alternativen Lösung, die die Regex.Replace-Funktionalität für eine genauere Darstellung nutzt Ergebnisse.
Lösung:
Die MySQL-Datenbank bietet die Funktion REGEXP_REPLACE, die als verwendet werden kann Benutzerdefinierte Funktion. Diese Funktion stellt das gewünschte Regex.Replace-Verhalten bereit. Betrachten Sie die folgende Abfrage:
SELECT LENGTH(REGEXP_REPLACE(name, '\s+', ' ')) - LENGTH(REGEXP_REPLACE(name, '\s+', '') +1 FROM table
Diese Abfrage ersetzt mehrere Leerzeichen durch ein einzelnes Leerzeichen und zählt so die Leerzeichen als Worttrennzeichen.
Alternative Überlegungen:
Für eine optimale Leistung wird empfohlen, doppelte Leerzeichen zu verhindern Eingabe in die Datenbank. Wenn häufig auf die Wortanzahl zugegriffen wird, kann sie außerdem einmal berechnet und zum schnelleren Abruf in der Datenbank gespeichert werden.
Das obige ist der detaillierte Inhalt vonWie kann die REGEXP_REPLACE-Funktion von MySQL Wörter in einer Spalte genau zählen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!