Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Ermitteln der am häufigsten verwendeten Wörter php mysql

Richtig, das läuft wie ein Hund und beschränkt sich auf die Arbeit mit einem einzigen Trennzeichen, aber hoffentlich gibt es Ihnen eine Vorstellung.

SELECT aWord, COUNT(*) AS WordOccuranceCount
FROM (SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(concat(SomeColumn, ' '), ' ', aCnt), ' ', -1) AS aWord
FROM SomeTable
CROSS JOIN (
SELECT a.i+b.i*10+c.i*100 + 1 AS aCnt
FROM integers a, integers b, integers c) Sub1
WHERE (LENGTH(SomeColumn) + 1 - LENGTH(REPLACE(SomeColumn, ' ', ''))) >= aCnt) Sub2
WHERE Sub2.aWord != ''
GROUP BY aWord
ORDER BY WordOccuranceCount DESC
LIMIT 10

Dies beruht auf einer Tabelle namens Integer mit einer einzigen Spalte namens i mit 10 Zeilen mit den Werten 0 bis 9. Sie kommt mit bis zu ~1000 Wörtern zurecht, kann aber leicht geändert werden, um mehr zu bewältigen (wird aber noch langsamer).