MySQL中如何按逗号截断字符串并拆分为两个列?
MySQL按指定分隔符拆分字符串实现方案
可以使用MySQL内置的SUBSTRING_INDEX函数实现该需求,具体实现语句如下:
临时查询使用
如果仅需要查询输出拆分后的结果,直接执行SELECT语句即可:
SELECT TRIM(SUBSTRING_INDEX(`string 1`, ',', 1)) AS `col 1`, TRIM(SUBSTRING_INDEX(SUBSTRING_INDEX(`string 1`, ',', 2), ',', -1)) AS `col 2` FROM 表1;
逻辑说明
SUBSTRING_INDEX(字符串, 分隔符, 计数)函数会按照指定分隔符截取字符串:计数为正数时,返回第N个分隔符之前的所有内容;计数为负数时,返回倒数第N个分隔符之后的所有内容- 第一列
col 1直接截取第一个逗号之前的内容,用TRIM函数去掉前后多余的空格 - 第二列
col 2先截取前2个逗号包含的所有内容,再对这部分内容截取最后一个逗号之后的内容,即可得到第一个逗号和第二个逗号之间的内容,同样用TRIM去掉空格
永久写入表中
如果需要把拆分后的结果持久化存储到表中,可以先新增字段再更新数据:
-- 新增两个目标列 ALTER TABLE 表1 ADD COLUMN `col 1` VARCHAR(255), ADD COLUMN `col 2` VARCHAR(255); -- 填充拆分后的数据 UPDATE 表1 SET `col 1` = TRIM(SUBSTRING_INDEX(`string 1`, ',', 1)), `col 2` = TRIM(SUBSTRING_INDEX(SUBSTRING_INDEX(`string 1`, ',', 2), ',', -1));
内容的提问来源于stack exchange,提问作者anna
相关产品推荐
相关产品推荐

