sql >> Databáze >  >> RDS >> Mysql

MySql získá seznam jedinečných slov z tabulky, kde jsou hodnoty v poli oddělené čárkou

Můžete to udělat v SQL, i když to není hezké.

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

Musíte si být jisti, že poddotaz n má v každé značce alespoň počet slov.

Zde je SQLFiddle, který to demonstruje.

Toto je křížové spojení původních dat se sekvenčními čísly. Poté vybere n-tou hodnotu z řetězců značek pomocí substring_index() .

Chcete-li získat maximální počet značek, můžete:

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


  1. Jak opravit „Možnost konfigurace ‚Agent XPs‘ neexistuje“ v SQL Server (T-SQL)

  2. Funkce NEXT_DAY() v Oracle

  3. Auto Increment varchar v MySQL

  4. Zálohování/obnovení serveru SQL vs. odpojení/připojení