[英]Maximum length allowed in GROUP_CONCAT ? How to pass it?
在mySQL中,我使用GROUP_CONCAT
SELECT
visits,
GROUP_CONCAT(token) as token
FROM general
GROUP BY visits
但問題是我有大量的行具有相同的訪問次數並使用PHP它不允許我打印所有內容。
這有解決方法嗎?
當我試圖將group_concat變成一個太大的字符串時,我遇到了同樣的問題。所以我要解決的問題是這個
SET SESSION group_concat_max_len = 10000000000000000;
這是一個臨時函數,意味着它實際上不會永遠地更改它,而只是在查詢會話的范圍內。
我不建議永遠更改它,但僅限於查詢的范圍......這樣你就不會為這一個函數消耗大量的內存空間...當你可能不需要使用它時所有的時間
除此之外,如果你真的想將它重置為更大的長度而不是為你的會話更改它,那么只需從查詢中刪除會話來設置它。
所以你的查詢應該是這樣的
SET SESSION group_concat_max_len = 10000000000000000; -- # -- or whatever size you need to make it
SELECT
visits,
GROUP_CONCAT(token) as token
FROM general
GROUP BY visits;
如果您仍然收到錯誤,因為@ spencer7593正確注意到..您可能需要更改您的max_allowed_packet
...您可以通過此SO POST執行此操作
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.