今天工作中遇到一个问题,公司邮箱换后缀名,要批量改邮箱后缀名,特记录以下:
总的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';