在開發過程中使用到了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");
}
}
});
此問題邊可以解決...............................................................................................................................................................................................................................................................................................我叫陳特西!!! 樂於分享與交流~