Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

menentukan kumpulan kata yang paling sering digunakan php mysql

Benar, ini berjalan seperti anjing dan terbatas untuk bekerja dengan pembatas tunggal, tapi semoga bisa memberi Anda gambaran.

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

Ini bergantung pada memiliki tabel yang disebut bilangan bulat dengan satu kolom yang disebut i dengan 10 baris dengan nilai 0 hingga 9. Ini mengatasi hingga ~ 1000 kata tetapi dapat dengan mudah diubah untuk mengatasi lebih banyak (tetapi akan lebih lambat).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySql SELECT union untuk kolom yang berbeda?

  2. MySQL Beberapa Kiri Bergabung

  3. Menggunakan SUM pada data FLOAT

  4. Menyiapkan kunci asing di phpMyAdmin?

  5. Setelah MySQL menginstal melalui Brew, saya mendapatkan kesalahan - Server berhenti tanpa memperbarui file PID