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 ;

webman框架数据库配置中strict=>false(非严格模式,启用groupby)

'mysql' => [
    'driver'      => getenv('DB_DRIVER') ?: 'mysql',
    'host'        => getenv('DB_HOST') ?: '127.0.0.1',
    'port'        => getenv('DB_PORT') ?: 3306,
    'database'    => getenv('DB_DATABASE') ?: 'webman',
    'username'    => getenv('DB_USERNAME') ?: 'root',
    'password'    => getenv('DB_PASSWORD') ?: '',
    'unix_socket' => getenv('DB_UNIX_SOCKET') ?: '',
    'charset'     => getenv('DB_CHARSET') ?: 'utf8mb4',
    'collation'   => getenv('DB_COLLATION') ?: 'utf8mb4_bin',
    'prefix'      => getenv('DB_PREFIX') ?: '',
    'strict'      => getenv('DB_STRICT') ?: true,
    'engine'      => getenv('DB_ENGINE') ?: null,
],