sql >> Databáze >  >> RDS >> Mysql

určení nejpoužívanější množiny slov php mysql

Dobře, tohle běží jako pes a je omezeno na práci s jedním oddělovačem, ale doufejme, že vám to dá představu.

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

To spoléhá na to, že máme tabulku nazvanou celá čísla s jedním sloupcem nazvaným i s 10 řádky s hodnotami 0 až 9. Poradí si až s ~1000 slovy, ale lze ji snadno upravit tak, aby zvládla více (ale ještě více se zpomalí).



  1. Java - Výjimka v hlavním vláknu java.lang.Error:Nevyřešené problémy s kompilací

  2. Hromadné DELETE na SQL Server 2008 (Existuje něco jako Bulk Copy (bcp) pro odstranění dat?)

  3. Jak procházet seznamem s oddělovači v Oracle PLSQL

  4. mysql aktualizuje sloupec s int na základě objednávky