自己使用MySQL中的GROUP_CONCAT(CONCAT_WS())函数查询的数据显示不全的问题. 以及在后台开发中怎么设置使用.

在开发过程中使用到了MySQL 中的GROUP_CONCAT(CONCAT_WS())搭配方式, 至于怎么使用mysql中的concat函数、concat_ws()函数,以及group_concat()函数。可以参考一下链接↙

https://blog.csdn.net/Vasilis_1/article/details/75305473

开发过程中,自己遇到因为使用GROUP_CONCAT(CONCAT_WS())而导致查询出的数据不全,有缺失。刚开始自己是一头雾水,以为是写的代码有问题但自己仔细的有检查一下发现没问题。

便把查询的语句在数据库里又查了一遍。这才发现是数据库语句有问题。通过在网上查找也找到了几个解决的方案,但是都不行。

自己右摸索了一点时间。

直接在MySQL的配置文件my.ini中的:

[mysqld]

添加
group_concat_max_len=4294967295(可以随意的设置)

重启之后好像没有什么变化。

自己在数据库查询语句前先添加了

SET SESSION group_concat_max_len = 71680;(其中还有可以  SET GLOBAL group_concat_max_len = 102400; 这个没有试,感兴趣的小伙伴可以试下)

在进行查询,问题完美搞定。

但是在代码中怎样设置成了难题。

不能直接在拼接的SQL语句中直接的进行拼接.是无法被识别的.

可以在后台代码,语句查询之前先进行添加如下代码:

    

getSession().doWork(new Work() {
@Override
public void execute(Connection connection) throws SQLException {
try (Statement statement = connection.createStatement()) {
statement.execute("SET SESSION group_concat_max_len = 71680");
}
}
});

此问题边可以解决...............................................................................................................................................................................................................................................................................................我叫陳特西!!! 乐于分享与交流~ 
原文地址:https://www.cnblogs.com/chentexi/p/11378931.html