Heim >Datenbank >MySQL-Tutorial >Wie zähle ich das Vorkommen von Teilzeichenfolgen und ordne die Ergebnisse nach Häufigkeit in MySQL?

Wie zähle ich das Vorkommen von Teilzeichenfolgen und ordne die Ergebnisse nach Häufigkeit in MySQL?

DDD
DDDOriginal
2024-11-14 17:55:02528Durchsuche

How to Count Substring Occurrences and Order Results by Frequency in MySQL?

Teilstring-Instanzen zählen und Ergebnisse in MySQL ordnen

In MySQL können Sie die Vorkommen eines Teilstrings in einem String-Feld zählen und sortieren Ergebnisse basierend auf der Häufigkeit dieser Vorkommen mithilfe der folgenden Abfrage:

SELECT (CHAR_LENGTH(str) - CHAR_LENGTH(REPLACE(str, substr, ''))) / CHAR_LENGTH(substr) AS cnt
...
ORDER BY cnt DESC

Dieser Ausdruck berechnet die Anzahl der Teilzeichenfolgen, indem er die Differenz zwischen der Länge der ursprünglichen Zeichenfolge und der Länge der Zeichenfolge mit der ersetzten Teilzeichenfolge dividiert mit einer leeren Zeichenfolge um die Länge der Teilzeichenfolge. Die Ergebnisse werden dann in absteigender Reihenfolge der Anzahl sortiert.

Beispiel:

Betrachten Sie eine Tabelle mit einem Spaltenhost, der die folgenden Werte enthält:

'127.0.0.1'
'honeypot'
'honeypot'
'localhost'
'localhost'

Um die Vorkommen der Teilzeichenfolge „l“ in der Hostspalte zu zählen und die Ergebnisse nach der Anzahl zu ordnen, würden Sie die folgende Abfrage verwenden:

SELECT host, (CHAR_LENGTH(host) - CHAR_LENGTH(REPLACE(host, 'l', ''))) / CHAR_LENGTH('l') AS cnt
FROM user
ORDER BY cnt DESC

Die Ergebnisse wären:

| host      | cnt    |
|-----------+--------|
| localhost | 2.0000 |
| localhost | 2.0000 |
| honeypot  | 0.0000 |
| honeypot  | 0.0000 |
| 127.0.0.1 | 0.0000 |

Das obige ist der detaillierte Inhalt vonWie zähle ich das Vorkommen von Teilzeichenfolgen und ordne die Ergebnisse nach Häufigkeit in MySQL?. 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