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

MySql få liste over unikke ord fra tabel, hvor værdier i et felt adskilt med komma

Du kan gøre dette i SQL, selvom det ikke er kønt.

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

Du skal være sikker på, at underforespørgslen n har mindst antallet af ord i hvert tag.

Her er SQLFiddle, der demonstrerer dette.

Dette er krydssammenføjning af de originale data med sekventielle numre. Den udvælger derefter den n'te værdi fra tagstrengene ved hjælp af substring_index() .

For at få det maksimale antal tags, kan du gøre:

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


  1. MySQL-forespørgsel med flere tabeller

  2. Sådan formateres et tal som valuta i Oracle

  3. Sådan kommenterer du i SQL

  4. FEJL 1045 (28000):Adgang nægtet for brugeren 'root'@'localhost' (ved hjælp af adgangskode:JA)