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

mysql vyberte různé hodnoty oddělené čárkou

Rozdělte je před sečtením pomocí DISTINCT. Samozřejmě je lepší data normalizovat (ne více než 1 hodnota ve sloupci)

SELECT
  GROUP_CONCAT( DISTINCT SUBSTRING_INDEX(SUBSTRING_INDEX(keywords, ',', n.digit+1), ',', -1)) keyword
FROM
  t
  INNER JOIN
  (SELECT 0 digit UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3  UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6) n
  ON LENGTH(REPLACE(keywords, ',' , '')) <= LENGTH(keywords)-n.digit
WHERE cid=28

Podívejte se, jak to funguje



  1. Součet napříč oddíly s funkcemi okna

  2. Výsledky SQL ukládání do mezipaměti PHP

  3. mysql, sloupec utf-8:jak vybrat pouze malá a velká písmena?

  4. TransactSQL ke spuštění jiného skriptu TransactSQL