sql >> Databasteknik >  >> RDS >> Mysql

bestämma mest använda uppsättning ord php mysql

Okej, det här går som en hund och är begränsat till att arbeta med en enda avgränsare, men förhoppningsvis kommer det att ge dig en idé.

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

Detta förlitar sig på att ha en tabell som heter heltal med en enda kolumn som heter i med 10 rader med värdena 0 till 9. Den klarar av upp till ~1000 ord men kan enkelt ändras för att klara av fler (men kommer att sakta ner ännu mer).



  1. Topp 7 jobb som kräver SQL

  2. Vad är skillnaden mellan vyer och materialiserade vyer i Oracle?

  3. Reparerar Postgresql efter uppgradering till OSX 10.7 Lion

  4. 3 sätt att returnera antalet rader i varje partition i SQL Server (T-SQL)