日期:2014-05-16  浏览次数:20812 次

mysql group_concat自增主键问题

在进行分组时,有时候需要将某一字段的值以逗号或其它符号拼接在一起,可以使用group_concat函数来完成,如果要拼的字段是字符型的,很好办,用group_concat(字段名 separator ",")就行.
今天在测试程序时,发现有问题,后来发现就是group_concat函数的问题,拼接的字段是主键ID,我设为自动增长,我使用 group_concat(oct(doId) separator ",")发现拼接的主键不对劲,如果不使用oct()函数,对于要拼接的字段是数字型的这种情况,产生的结果就会是一个BLOB数据,因此要使用函数来处 理一下,后来我查了查MYSQL手册,发现oct()函数是返回一个8进制的数,原因找到了就好解决了,于是就再找啊找啊,找到了conv()函数,再转 换成10进制的数字就OK了,返回的结果正如我意,group_concat(conv(oct(doId),8,10) separator ",") 和
group_concat(conv(conv(doId,10,8),8,10) separator ',') 产生的效果是一样的

?

转载