MySQL substring_index 分割字符串

本文介绍了如何在SQL查询中使用substring_index函数对`temp_biz_email`表中的email_to和email_cc字段进行分割,处理可能出现的空值,并将结果插入到`temp_biz_email2`表中,确保数据完整性和准确性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

row1:

abc@sev.com.cn;

123@seeco.com;

ef@sevloal.com;

ddd@seobal.com

row2:

AAAA@se23vloal.com;

BBBB@seo234bal.com

把同一個Column的字符串,通過分隔符分割后逐行插入數據庫。

substring_index 定位是位置的左边,或者右边。而不能准确定位字符,需要做判断来返回正确的结果。

SELECT * FROM temp_biz_email
WHERE email_to='ech.com.cn'

INSERT temp_biz_email2(cust_no,email,carbon) 
SELECT cust_no,
SUBSTRING_INDEX(email_to,';',1) 
AS to1,1 FROM `temp_biz_email`


INSERT temp_biz_email2(cust_no,email,carbon) 
SELECT * from (
SELECT cust_no,
IF (SUBSTRING_INDEX(email_to,';',1)= email_to,NULL,
SUBSTRING_INDEX(
SUBSTRING_INDEX(email_to,';',2),';',-1)) 
AS email_to,1
FROM `temp_biz_email`
) AS tab WHERE tab.email_to !=''

对于第一个匹配的位置,可能会出现空的情况,例如 ;;;;;,去除null

INSERT temp_biz_email2(cust_no,email,carbon) 
SELECT * from (
SELECT cust_no,SUBSTRING_INDEX(email_cc,';',1) 
AS email_cc,1 FROM `temp_biz_email`
) AS tab 

WHERE tab.email_cc !='' AND email_cc not LIKE '%@eaddeek.com%'

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值