今天写接口,查询user,单测结果和用sql查询出的数量不一样,反复check,没有发现代码问题。
sql是先从关联表中用group_concat()查出所有user id,再用id到user表里过滤。
用程序将关联表中的user id输出出来,发现比group_concat()查出的id多,怀疑是group_concat有长度限制。
后来用子查询去查询,得到的数量和程序得出的数量一致。
网上查了下:
show variables like 'group_concat_max_len' 得到的结果为1024,mysql默认group_concat()最大字符长度为1024,可以用SET SESSION group_concat_max_len = XXX 修改最大字符长度