Mysql
 sql >> Baza danych >  >> RDS >> Mysql

mysql wybierz różne wartości oddzielone przecinkami

Podziel je przed dodaniem wszystkiego za pomocą DISTINCT. Oczywiście lepiej jest znormalizować dane (nie więcej niż 1 wartość w kolumnie)

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

Zobacz, jak działa



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. W jaki sposób są przechowywane komunikaty Websphere MQ, aby umożliwić ich trwałość?

  2. Skonfiguruj MAMP do korzystania z mariadb

  3. Zrzut MySQL według zapytania

  4. Błąd ETIMEOUT | Baza danych Google Cloud SQL z NodeJS

  5. Czy kardynalność może się różnić dla zduplikowanych indeksów w mysql?