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

Beberapa nilai teks dalam satu kolom, perlu kueri untuk menemukan kata yang paling berulang

Anda dapat melakukannya dengan bergabung dengan seri nomor yang diproduksi yang digunakan untuk memilih kata ke-n. Sayangnya, mysql tidak memiliki metode bawaan jika menghasilkan seri, jadi agak jelek, tapi ini dia:

select
  substring_index(substring_index(title, ' ', num), ' ', -1) word,
  count(*) count
from job j
join (select 1 num union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9 union select 10 union select 11 union select 12) n
on length(title) >= length(replace(title, ' ', '')) + num - 1
group by 1
order by 2 desc

Lihat demo langsung di SQLFiddle menggunakan data Anda dan menghasilkan keluaran yang diharapkan.

Sayangnya, keterbatasan hard code setiap nilai dari deretan angka juga membatasi jumlah kata dari kolom yang akan diproses (dalam hal ini 12). Tidak masalah jika ada terlalu banyak angka dalam rangkaian, dan Anda selalu dapat menambahkan lebih banyak untuk menutupi teks masukan yang diharapkan lebih besar.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana saya bisa membersihkan tabel temp di mysql

  2. gcc tidak akan mengkompilasi dan menjalankan perpustakaan MySQL C

  3. MYSQL UNION BERBEDA

  4. Bagaimana menambahkan Kriteria Pencarian dan Filter di Yii

  5. Deteksi item berurutan yang memenuhi kriteria tertentu dalam deret waktu