sql以第一个逗号分列

两条SQL语句就足够了:将列c更新为第一个小数点之后的所有内容。
天健表示a列有逗号updateAtsett.c=substr(t.a,instr(t.a,',')+1,length(t.a))whereinstr(t.a,',')>0;--将a列更新为之前的内容第一个逗号,假设a列有一个逗号updateAtsett.a=substr(t.a,1,instr(t.a,',')-1)whereinstr(t.a,',')>0-a列没有逗号不需要处理,c本身为空

MySQL中将使用逗号分隔的字段转换为多行数据

在实际开发中,经常需要处理逗号连接的字段。
为了实现查询和迁移功能,我们将讨论实际场景和解决方案。
场景如下:转换需求。
已经有一个bus_mark_info工单信息表,配置字段page使用逗号连接多个页面。
业务增长后,每个页面都需要单独配置,并添加其他属性。
因此,我们引入bus_pages关联表。
上线时,需要将原有的页面字段数据拆分并存储到新表中,原有的字段必须被丢弃。
Bus_mark_info表数据示例如下:首先编写SQL查询和迁移语句。
需要从bus_mark_info表中提取原始数据,并通过insertinto...select传输到新表中。
SQL示例如下:使用mysqlhelp_topic表作为关系。
help_topic表的特点是id从0开始递增,固定数据量为701。
对于每条bus_mark_info记录,预期生成的相关数据量等于page字段的逗号个数加1。
保证通过设置正确的相关条件预计生成的数据量。
然后,使用SUBSTRING_INDEX函数根据help_topic_id截取数据。
该操作涉及两个步骤:首先从help_topic_id+1个逗号的起始位置截取该节,然后截取该节中最后一个逗号之后的节。
通过该方法,利用help_topic_id和SUBSTRING_INDEX函数完成数据切分。
请注意,help_topic表具有id递增功能,也可以使用其他具有类似功能的表或数据来代替。
最大id值为700,这限制了处理最多701个页面扩展的数据的能力。
如需扩展更多页面,则需要更换其他表。
对于不熟悉SUBSTRING_INDEX函数和insertinto...select的读者,建议参考相关历史文章进行更深入的了解。
数据传输的SQL示例如下:执行后,将根据需要填充新的数据表。
综上所述,在实际开发中,通过SQL中的SUBSTRING_INDEX函数结合特殊的表特性,实现对包含多个字段连接器的数据的查询和传输,有效处理数据关联和分离,达到数据传输的目的。