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

MySql mendapatkan daftar kata-kata unik dari tabel di mana nilai dalam bidang dipisahkan dengan koma

Anda dapat melakukan ini dalam SQL, meskipun tidak cantik.

select distinct reverse(substring_index(reverse(substring_index(tags, ',', n.n)), ',', 1)) as word
from t cross join
     (select 1 as n union all select 2 as n union all select 3 as n union all select 4 as n) n
having word is not null

Anda harus yakin bahwa subquery n memiliki setidaknya jumlah kata di setiap tag.

Di sini adalah SQLFiddle yang mendemonstrasikan ini.

Ini adalah menggabungkan silang data asli dengan nomor urut. Kemudian mengambil nilai ke-n dari string tag, menggunakan substring_index() .

Untuk mendapatkan jumlah tag yang maksimal, Anda dapat melakukan:

select max(length(tags) - length(replace(tags, ',', 1))+1
from t


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Temukan catatan dari satu tabel yang tidak ada di tabel lain

  2. Bagaimana cara membatasi suara per hari dengan IP dalam pemungutan suara Php + MySQL?

  3. masukkan beberapa baris menggunakan satu nilai forigenk dalam formulir

  4. Jumlah perkalian kolom untuk baris dengan ID serupa di MySQL

  5. COLLATION 'utf8_general_ci' tidak valid untuk CHARACTER SET 'latin1'