You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将表中逗号分隔字段转换为concat()函数调用语句?

解决方案:将逗号分隔字符串转换为CONCAT()调用语句

核心思路是通过字符串替换,把原字段里的逗号替换成 ',',,再拼接上concat(开头和)结尾,就能自动生成目标语句。

针对MySQL的实现

直接用REPLACE函数配合CONCAT拼接:

SELECT CONCAT('concat(', REPLACE(products, ',', ''',','''), ')') AS concat_call
FROM table_product
WHERE id = 1;

执行后,id=1的记录会返回:concat(tv,',',phone,',',tablet)

针对PostgreSQL的实现

语法类似,用字符串连接符||:

SELECT 'concat(' || REPLACE(products, ',', ''',','''') || ')' AS concat_call
FROM table_product
WHERE id = 1;

关于你之前的错误查询

你之前的写法select concat(select products from table_product where id=1) from table_sales是把整个逗号分隔的字符串作为concat的单个参数传入,相当于执行concat('tv,phone,tablet'),这和你想要的多参数concat调用完全不是一回事,所以会达不到预期效果。

内容的提问来源于stack exchange,提问作者Gulya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 20:20:27