CREATE TABLE dummy(
id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(30)NOT NULL
)ENGINE = MYISAM;
并运行此查询:
SELECT GROUP_CONCAT(`name` SEPARATOR "||") FROM `dummy`
此查询使用||连接所有行中的name列在一列中.但是,结果会被mysql配置截断,如mysql manual中所述:
“… result is truncated to the maximum length that is given by the group_concat_max_len system variable, which has a default value of 1024 …”
同样在手册中,可以通过以下语法在运行时更改此设置:
SET [GLOBAL | SESSION] group_concat_max_len = val;
更改此配置是否适用于所有mysql服务器环境?如果没有,如果没有GROUP_CONCAT没有限制,我怎样才能获得相同的结果?
另外,我认为更改配置不会解决我的问题,因为我不知道如何设置group_concat_max_len的值,因为虚表中的行数可以是任意数.
谢谢.
解决方法:
您是否尝试过使用存储过程来完成任务?您可以创建具有单个行/列的临时表,并在从表中获取行时附加到该表.最后,只需从临时表中选择单个值.
您可以在mysql manual和其他位置找到有关存储例程的信息.
标签:mysql
来源: https://codeday.me/bug/20190710/1423170.html