mysql的group_concat函數長度限制

今天在調試代理表的時候,開始查詢一直都查詢不到新添加進來的代理數據,一會兒鎖定函數裏面的某些變量長度限制有問題,因而修改長度從4000變爲8000,怎麼看查詢的結果回來都只是1024的長度,感受有問題,繼續找度娘,後臺找到了解決方案。本地親測有效,問題已經解決。mysql

1. GROUP_CONCAT有個最大長度的限制,超過最大長度就會被截斷掉,你能夠經過下面的語句得到:sql

  SELECT @@global.group_concat_max_len;函數

  show variables like "group_concat_max_len";.net

2.在MySQL配置文件中my.conf或my.ini中添加:代理

  #[mysqld]
  group_concat_max_len=102400調試

3.重啓MySQL服務blog

函數:
DELIMITER $$
CREATE FUNCTION `getChildList`(`rootId` VARCHAR(32)) RETURNS varchar(4000) CHARSET utf8
BEGIN
    DECLARE sTemp VARCHAR(4000);
    DECLARE sTempChd VARCHAR(4000);
    DECLARE count INT DEFAULT 0;get

    SET sTemp = '';-- 返回值
    SET sTempChd =cast(rootId as CHAR); -- 父id
        
        -- 判斷父id是否存在
      SET count=(SELECT count(1) from sys_dept WHERE id=rootId);
        IF count>0 THEN
            -- 遍歷拼接全部子節點id
            WHILE sTempChd is not null DO
                SET sTemp = concat(sTemp,',',sTempChd);
                SELECT group_concat(id) INTO sTempChd FROM sys_dept where FIND_IN_SET(parent_Id,sTempChd)>0;
            END WHILE;
        -- 剔除拼接後多餘的第一個逗號
        SET sTemp = (SELECT TRIM(LEADING ',' FROM sTemp));
        END IF;
    RETURN sTemp;
END $$
DELIMITER ;
 ast

友情連接:https://blog.csdn.net/qw222pzx/article/details/80867797 後臺

相關文章
相關標籤/搜索