mysql5.7及以上有个函数为ANY_VALUE(),具体什么作用可以自己百度了解
有一个问题是MariaDb 并不支持这个函数导致同样的项目部署到MariaDb服务器上报错现在我们使用自定义函数来再MariaDb替代它,具体实现如下
DELIMITER //
CREATE AGGREGATE FUNCTION ANY_VALUE (x LONGBLOB) RETURNS LONGBLOB
BEGIN
LOOP
FETCH GROUP NEXT ROW;
RETURN x;
END LOOP;
END //
DELIMITER ;
记住我们在执行之前要开启mysql允许自定义函数
#查看自定义函数开启状态 --mysql里执行
SHOW variables like '%fun%';
如果是off的话
set global log_bin_trust_function_creators = 1;
然后执行就可以了,但是最坑的是中文用LONGBLOB乱码 所以有中文场景应该用text这个数据类型
DELIMITER //
CREATE AGGREGATE FUNCTION ANY_VALUE (x TEXT) RETURNS TEXT
BEGIN
LOOP
FETCH GROUP NEXT ROW;
RETURN x;
END LOOP;
END //
DELIMITER ;