sql >> Database teknologi >  >> RDS >> Mysql

bestemmer mest brugte ordsæt php mysql

Okay, dette kører som en hund og er begrænset til at arbejde med en enkelt afgrænser, men forhåbentlig vil det give 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

Dette er afhængig af at have en tabel kaldet heltal med en enkelt kolonne kaldet i med 10 rækker med værdierne 0 til 9. Den klarer op til ~1000 ord, men kan nemt ændres til at klare flere (men vil bremse endnu mere).



  1. Hvordan NU() virker i MariaDB

  2. Sådan vælger du den sidste post fra MySQL-tabel ved hjælp af SQL-syntaks

  3. Tilføj en kolonne til en tabel i SQL

  4. PDO-forbindelsestest