鍍金池/ 問(wèn)答/數(shù)據(jù)庫(kù)/ MySQL group_concat和union同時(shí)使用結(jié)果被截?cái)?,求解?/span>

MySQL group_concat和union同時(shí)使用結(jié)果被截?cái)啵蠼狻?/h1>

MySQL使用group_concatunion結(jié)果被截?cái)唷?br>表test_b

CREATE TABLE "test_b" (
  "id" int(11) NOT NULL AUTO_INCREMENT,
  "name" varchar(255) NOT NULL,
  "status" tinyint(2) NOT NULL DEFAULT '1',
  PRIMARY KEY ("id")
)

測(cè)試1:

select GROUP_CONCAT(id) ids from test_b where id <200
UNION
select GROUP_CONCAT(id) ids from test_b where id >900

圖片描述

測(cè)試2:

select GROUP_CONCAT(id) ids from test_b where id <200
UNION
select null ids

圖片描述

測(cè)試3:

select GROUP_CONCAT(id) ids from test_b where id <10
UNION
select GROUP_CONCAT(id) ids from test_b where id >900

圖片描述

測(cè)試了截?cái)嘈械拈L(zhǎng)度:
select LENGTH('1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,1')
結(jié)果為341。
查了mysql文檔也沒(méi)有找到原因,求解。

回答
編輯回答
情未了

首先,你要確定是你用的MySQL客戶(hù)端截?cái)嗟?,還是MySQL返回時(shí)就截?cái)嗟??測(cè)試方法很簡(jiǎn)單:

SELECT LENGTH(GROUP_CONCAT(id)) ...

如果是后者,可以考慮在配置(my.cnf或my.ini)中把group_concat_max_len設(shè)得大些,或者每次連接時(shí)執(zhí)行SET SESSION group_concat_max_len = 1000000。

2017年8月23日 02:34