0

助けてください、私は group_concat を使用してコンマ区切りの数値を取得しましたが、3000 を超える値のうち 72 しか表示されません。

SELECT GROUP_CONCAT(  `phone` ) 
FROM  `notify` 
LIMIT 0 , 4000
4

2 に答える 2

2

group_concat 関数には最大長があります [ MySQL ドキュメントより]

結果は、group_concat_max_len システム変数で指定された最大長に切り捨てられます。この変数のデフォルト値は 1024 です。戻り値の有効な最大長は max_allowed_pa​​cket の値によって制限されますが、値を大きく設定することもできます。実行時に group_concat_max_len の値を変更する構文は次のとおりです。ここで、val は符号なし整数です。セッション] group_concat_max_len = val;

戻り値は、引数が非バイナリ文字列かバイナリ文字列かによって、非バイナリ文字列またはバイナリ文字列になります。group_concat_max_len が 512 以下でない限り、結果の型は TEXT または BLOB です。この場合、結果の型は VARCHAR または VARBINARY です。

しかし、おそらくあなたがしていることをすべきではありません: 行を 1 つずつ取得し、アプリケーションでそれらを 1 つのカンマ区切りの文字列に結合する方がよいでしょう。

于 2012-08-14T07:48:52.970 に答える
1

group_concat の結果の長さは、group_concat_max_len システム変数の値に制限 (切り捨て) されます。この変数のデフォルト値は 1024 です。

変数の値を変更する場合の構文は次のとおりです。

SET [GLOBAL | SESSION] group_concat_max_len = val;
于 2012-08-14T07:49:18.953 に答える