今天工作中遇到一个问题,公司邮箱换后缀名,要批量改邮箱后缀名,特记录以下:
总的sql 如下:
update staff set email=concat (substring(email,1,locate('@aaa.com',email)),'bbb.com') Where email LIKE '%@aaa-inc.com'
首先concat函数是一个拼接字符串的函数

substring函数是截取字符串的函数
1.substring(str,index,num) 从指定字符串(str) 截取指定的子串(从index开始截取num个字符)。
2.select substring(‘class_name’,2,5) ;//字符串的坐标从1开始
执行结果为 ‘lass_’
2.locate(cstr,str,[position]) 查找子字符串(cstr)在字符串(str)中的坐标,可选参数position意为查找的起始位置
示例:
SELECT locate(‘s’,‘students_name’)SELECT locate(‘s’,‘students_name’,5)
第1条语句执行结果为:1
第2条语句执行结果为:8
查看重新拼写完的字段的值
select concat (substring(email,1,locate('@aaa.com',email)),'bbb.com')
FROM staff Where email LIKE '%@aaa.com';
本文记录了一次使用SQL更新员工邮箱后缀名的过程,主要涉及了concat和substring以及locate函数的运用。通过concat函数拼接新的邮箱地址,substring函数截取旧邮箱的前缀,locate函数找到'@aaa.com'的位置,实现了从'@aaa.com'到'@bbb.com'的批量替换。此方法适用于需要批量更改大量数据中的特定字符串。
1866

被折叠的 条评论
为什么被折叠?



