2017-04-19 3 views
-1

J'ai une colonne dans laquelle est stocké rien que du texte séparé par un espace. Il peut y avoir un à peut-être 5 mots dans chaque champ de la colonne. J'ai besoin d'une requête pour retourner tous les mots distincts dans cette colonne.Sélectionner tous les mots distincts dans la colonne MYSQL

Essayé:

SELECT DISTINCT tags FROM documents ORDER BY tags 

mais ne fonctionne pas.

Pour élaborer.

J'ai une colonne appelée tags. Dans ce que je peux avoir les entrées suivantes:

Row 1 Red Green Blue Yellow 
Row 2 Red Blue Orange 
Row 3 Green Blue Brown 

Je veux sélectionner tous les mots DISTINCT la colonne entière - tous les champs. Il retournerait:

Red Green Blue Yellow Orange Brown 

Si je comptais chacun il retournerait:

2 Red 
2 Green 
3 Blue 
1 Yellow 
1 Brown 
1 Orange 
+0

* "ne fonctionne pas" * - Pouvez-vous élaborer là-dessus? Quels résultats obtenez-vous maintenant et quels sont les résultats attendus? Vous devez également publier le schéma/les valeurs et la pertinence pour php ici. Edit: à laquelle la balise php a été supprimée lors d'une modification. http://stackoverflow.com/revisions/43499498/2 –

+0

Si DISTINCT ne fonctionnait pas, essayez d'ajouter GROUP BY –

+0

Si chaque tag était sur sa propre ligne dans un autre tableau, ce serait la chose la plus simple au monde ... –

Répondre

0

Pour résoudre ce problème, je fini par créer une deuxième table où tous les mots clés où insérés sur leur propre ligne chaque avec un record clé qui les a liés à l'enregistrement d'origine dans la table de données principale. Je dois juste alors SELECT DISTINCT pour obtenir toutes les balises ou je peux SELECT DISTINCT avec une clause WHERE spécifiant l'enregistrement original pour obtenir les balises associées à un enregistrement unique. Beaucoup plus facile.