在开发过程中使用到了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");
}
}
});
此问题边可以解决...............................................................................................................................................................................................................................................................................................我叫陳特西!!! 乐于分享与交流~