如何在MySQL中编写查询为逗号分隔字符串的每个值添加前缀
MySQL 逗号分隔id字段批量加前缀C解决方案
方案1:极简快速方案(常规场景首选)
直接通过字符串替换实现,性能最优,适合id值不含特殊字符的业务场景:
-- 把your_table替换为你实际的表名即可 SELECT CONCAT('C', REPLACE(id, ',', ',C')) AS formatted_id FROM your_table;
实现逻辑说明:
- 第一步:用
REPLACE(id, ',', ',C')把原字符串里的所有逗号替换为,C,比如原1,2,3,4会变成1,C2,C3,C4 - 第二步:用
CONCAT('C', ...)在处理后的字符串开头补前缀C,最终得到C1,C2,C3,C4的预期结果
方案2:严谨通用方案(MySQL 8.0+ 支持)
如果你的id值可能包含空格、特殊字符,或者后续需要对拆分后的单个值做其他处理,可以用拆分后重新拼接的逻辑:
SELECT GROUP_CONCAT(CONCAT('C', single_id)) AS formatted_id FROM your_table t, JSON_TABLE(CONCAT('["', REPLACE(t.id, ',', '","'), '"]'), '$[*]' COLUMNS(single_id VARCHAR(255) PATH '$')) AS split_ids GROUP BY t.id;
内容的提问来源于stack exchange,提问作者Sagar Jani
相关产品推荐
相关产品推荐

