2017-09-07 1 views
0

Ich habe eine Tabelle. Lassen Sie uns nennen es user_errorsMySQL Get distinct Werte von benutzerdefinierten (|) getrennten Strings

user_id  errors 
    1  E001|E003 
    1  E005|E001|E003 
    3  E009|E002|E004 
    2  E001|E005|E004|E006 

Ich habe eine andere Tabelle, die Fehlerbeschreibung hat. Sagen wir error_description

err_code error_description 
    E001   Error 01 
    E002   Error 02 
    E003   Error 03 
    E004   Error 04 
    E005   Error 05 
    E006   Error 06 
    E007   Error 07 
    E008   Error 08 
    E009   Error 09 

Ich möchte unten Ergebnis erreichen.

Get eindeutige Fehlercodes von user_errors Tabelle. Gerade die distinct errors Spalte

errors 
E001 
E002 
E003 
E004 
E005 
E006 
E009 
+0

Nicht wirklich eine Antwort so als Kommentar hinzufügen, aber ist es möglich, Dinge zu ändern, so dass Sie nur einen Fehlercode pro Zeile speichern? –

+0

Mögliches Duplikat von [Equivalent von explode(), um mit Strings in MySQL zu arbeiten] (https://stackoverflow.com/questions/5928599/equivalent-of-explode-to-work-with-strings-in-mysql) –

+0

@ TomRevell ist nicht möglich, weil ich 500k Datensätze habe. Eine Zeile kann mehrere Fehler enthalten, daher wird sie mit Hilfe der Pipe (|) getrennt. – pmenezes

Antwort

0

Diese Abfrage

select distinct trim (SUBSTRING_INDEX (SUBSTRING_INDEX (Fehler, '|', nn), '|', -1)) als values von user_errors t Cross Join (wählen Sie 1 als n Union alle 10 wählen) n bestellen von values