簡體   English   中英

GROUP_CONCAT允許的最大長度?怎么通過呢?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM