Với truy vấn MySQL sau:Làm cách nào để ngăn GROUP_CONCAT tạo kết quả khi không có dữ liệu đầu vào?
SELECT
`show`.`id`
, GROUP_CONCAT(`showClips`.`clipId` ORDER BY `position` ASC) AS 'playlist'
FROM
`show`
INNER JOIN
`showClips`
ON
(`show`.`id` = `showClips`.`showId`)
;
Tôi muốn lấy một danh sách của tất cả các "show" từ cơ sở dữ liệu, bao gồm cả các id của "clip" kiềm chế.
Điều này hoạt động tốt, miễn là có các mục nhập trong bảng show
. Đối với vấn đề này, chúng ta hãy giả sử tất cả các bảng là hoàn toàn trống rỗng.
GROUP_CONCAT
sẽ trả lại NULL
và do đó buộc hàng vào kết quả (chỉ chứa giá trị NULL
).
Ứng dụng của tôi sau đó sẽ nghĩ rằng một chương trình/kết quả tồn tại. Nhưng kết quả đó sẽ không hợp lệ. Điều này tất nhiên có thể được kiểm tra, nhưng tôi cảm thấy như thế này có thể (và nên) được ngăn chặn trong các truy vấn đã có.
Cảm ơn. Tôi sẽ đánh dấu phản ứng của Daniel là câu trả lời, vì anh ta dường như đã nhanh hơn một giây. –