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!