Czy istnieje opcja, aby funkcja Group_Concat w MySQL zawierała wartości null?MySQL GROUP_CONCAT z wartościami Null
Rozważmy następujący przykład z mojego tabeli źródłowej:
userId, questionId, selectionId
7, 3, NULL
7, 4, 1
7, 5, 2
Podczas kwerendy w tabeli wyboru z GROUP_CONCAT, mam następujące:
7, 4=1,5=2
Chciałbym uzyskać następujące:
7, 3=NULL,4=1,5=2
Dla porównania, moja kwerenda wygląda następująco:
Select userId, GROUP_CONCAT(CONCAT(questionId, '=', selectionId))
From selection
Group by userId;
Próbowałem też dodanie IFNULL tak:
Select userId, GROUP_CONCAT(IFNULL(CONCAT(questionId, '=', selectionId), 'NULL'))
From selection
Group by userId;
ale produkowane następujące:
7, NULL,4=1,5=2
Uwaga - Jest jeszcze jedna złożoność że zapomniałem dołączyć. Identyfikator selekcji jest kluczem obcym do innej tabeli. Używam lewego zewnętrznego sprzężenia do tabeli selection_text. Moje prawdziwe zapytanie zawiera pola z tej tabeli (te pola są ustawiane na NULL, ponieważ identyfikator selectionId ma wartość NULL).
Wyprodukuj, co powinno, spróbuj IFNULL na selekcji Id, a nie na CONCAT. – piotrm
To zadziałało. Dzięki. – David
Ale ogólnie rzecz biorąc - unikaj użycia konkordatu grupowego! – IcedDante