使用组concat插入Select

时间:2015-04-23 09:15:16

标签: php mysql group-concat

嗨我有一张有值的表

 domain                 user              groups
 test_at_test.com         john              first
 test_at_test.com         mary              second
 test_at_test.com         john              second

等。

我希望group concat该表并将值插入新表或update当前表我没有问题并让新表像这样

domain                user              groups
test_at_test.com         john              first,second
test_at_test.com         mary              second

我写下以下command,但我得到error列数与第1行的值计数不匹配     INSERT INTO newtable     SELECT * , GROUP_CONCAT(groups)     FROM table GROUP BY     user ORDER BY domain

1 个答案:

答案 0 :(得分:1)

您的新表有3列但是在select中,结果集将有4列,您需要在select语句中指定列

INSERT   INTO    newtable 
SELECT `domain`, `user`,  GROUP_CONCAT(groups)  
FROM table GROUP BY  user 
ORDER BY domain

DEMO

  

注意结果被截断为group_concat_max_len系统变量给出的最大长度,该变量具有默认值   1024.尽管有效最大值,可以设置更高的值   返回值的长度受值的约束   max_allowed_pa​​cket的。