Có một tùy chọn để làm cho chức năng Group_Concat của MySQL bao gồm null không?MySQL GROUP_CONCAT với Nulls
xem xét ví dụ sau đây từ bảng nguồn của tôi:
userId, questionId, selectionId
7, 3, NULL
7, 4, 1
7, 5, 2
Khi tôi truy vấn trên bảng lựa chọn với GROUP_CONCAT, tôi nhận được như sau:
7, 4=1,5=2
Tôi muốn nhận được như sau:
7, 3=NULL,4=1,5=2
Để tham khảo, truy vấn của tôi trông giống như sau:
Select userId, GROUP_CONCAT(CONCAT(questionId, '=', selectionId))
From selection
Group by userId;
Tôi cũng đã cố gắng thêm một IFNULL như thế này:
Select userId, GROUP_CONCAT(IFNULL(CONCAT(questionId, '=', selectionId), 'NULL'))
From selection
Group by userId;
nhưng điều đó được sản xuất như sau:
7, NULL,4=1,5=2
Lưu ý - Chỉ có một độ phức tạp khác mà tôi quên bao gồm. Lựa chọnId là khóa ngoài cho một bảng khác. Tôi sử dụng một tham gia bên ngoài bên trái vào bảng selection_text. Truy vấn thực sự của tôi bao gồm các trường từ bảng đó (các trường này giải quyết thành NULL vì selectionId là null).
Được sản xuất những gì cần, hãy thử IFNULL trên selectionId, không phải trên CONCAT. – piotrm
Điều đó đã hiệu quả. Cảm ơn. – David
Nhưng nói chung - tránh sử dụng Concat nhóm! – IcedDante