Tôi có một chức năng được liệt kê bên dưới. Khi tôi gọi nó với LIMIT được đặt ở 0,60 như được thấy bên dưới, nó hoạt động tốt. Tuy nhiên, bất cứ khi nào tôi tăng LIMIT đến 70 hoặc cao hơn, hoặc thậm chí loại bỏ LIMIT, lỗi MySQL khi tôi gọi hàm với lỗi: "Hàng 30153 đã bị cắt bởi GROUP_CONCAT()".MySQL "Hàng 30153 bị cắt bởi GROUP_CONCAT()" lỗi
Tôi đã thử tăng giá trị VARCHAR lên 10 000 nhưng điều đó không có tác dụng. Theo như tôi có thể hiểu được từ các lỗi, họ dường như không đủ không gian i nthe biến cho các nội dung. Nhưng như tôi đã đề cập, tôi đã thử tăng kích thước nhưng nó không giúp được gì. Bất kỳ ý tưởng ?? Cảm ơn
DELIMITER $$
DROP FUNCTION IF EXISTS `fnAlbumGetPhotoList` $$
CREATE DEFINER=`root`@`%` FUNCTION `fnAlbumGetPhotoList`(_albumId int) RETURNS varchar(2048) CHARSET utf8
BEGIN
DECLARE _outPhotoList VARCHAR(2048);
SET _outPhotoList = (
SELECT (CAST(GROUP_CONCAT(CONCAT(photoId, '|', photoFileName) separator '~') AS CHAR(10000) CHARACTER SET utf8)) AS recentPhotoList
FROM
(
SELECT photoId, photoFileName
FROM photo
WHERE photoAlbumId = _albumId
AND photoIsDisabled = 0
AND photoIsActive = 1
ORDER BY photoId DESC
LIMIT 0,60
) as subQuery
);
RETURN _outPhotoList;
END $$
DELIMITER ;
Cảm ơn - Kết quả đã rõ rệt, vì vậy tôi cố gắng thêm này trong proc của tôi: 'SET GLOBAL group_concat_max_len = 15000;' Nó không tạo nên sự khác biệt mặc dù ?? Đó có phải là cách sử dụng đúng không? – Cheeky
Xem sách hướng dẫn (nhấp vào "group_concat_max_len", đó là liên kết) để có mô tả đầy đủ. 15 000 trông loại nhỏ, hãy thử giá trị tối đa của nền tảng của bạn :) Cũng đọc chủ đề GROUP_CONCAT, nó cũng có một số thông tin về hành vi và nhận xét về biến max_allowed_packet. – ain
Ồ, và loại bỏ CHAR (10000) cast - nó làm cho kết quả dài hơn và do đó gây ra vấn đề, không sửa chữa chúng! – ain