使用组时如何组合字段值

时间:2015-05-20 03:05:47

标签: mysql

表格字段

name varchar
record varchar

数据

name: chan record: 1
name: chan record: 33
name: chan record: 1
name: phoebe record 4
name: phoebe record 55

SQL

SELECT *, GROUP_CONCAT('record') FROM `table` GROUP BY `name`

我可以获得下面的数据,这正是我想要的,但是GROUP_CONCAT有长度限制,我的服务器供应商不允许我更改配置,是否可以在不使用{{1}的情况下获得相同的结果}}

GROUP_CONCAT

1 个答案:

答案 0 :(得分:0)

默认限制为1024.尝试通过连接多个group_concat结果来克服此限制。

之类的东西
SELECT *, 
  SUBSTRING(
    CONCAT(
      GROUP_CONCAT(
        IF(record BETWEEN 1 AND 100, CONCAT(',', record), '')
        SEPARATOR ''
      ),
      GROUP_CONCAT(
        IF(record BETWEEN 101 AND 200, CONCAT(',', record), '')
        SEPARATOR ''
      )
    ),
    2
  ) AS result
FROM `table`

参考:http://code.openark.org/blog/mysql/sql-trick-overcoming-group_concat-limitation-in-special-cases