在表格中转换/清理格式错误的电子邮件地址

时间:2018-03-16 09:43:34

标签: mysql

我有一张桌子,上面有电子邮件地址。但是多年来使用这个表格搞砸了,一些电子邮件地址以下列格式保存。

Some Name <myEmail@example.com>

可能是因为某些用户从其他应用程序复制粘贴了电子邮件地址。为了清理这个专栏,我正在搜索单个sql查询来执行此清理。

我有点坚持如何在纯MySQL方式上解决这个问题。也就是说,如何将上述格式(并且仅该格式)转换为仅&lt;之间的电子邮件地址。 &GT;

过滤那些错误的&#39;电子邮件非常简单:

SELECT * FROM table WHERE email like '%<%>%'

但是......

UPDATE table 
SET email = ??? 
WHERE email like '%<%>%'

1 个答案:

答案 0 :(得分:1)

如果我确实理解了您的需求,那就是您的解决方案:

UPDATE table 
SET email = REPLACE(REPLACE(SUBSTRING(email,instr(email,'<')),'<',''),'>','')
WHERE email like '%<%>%'

UPDATE table 
SET email = REPLACE(SUBSTRING(email,instr(email,'<')+1),'>','')
WHERE email like '%<%>%'

尝试here