我的表中有一个longtext列“description”,有时包含一个电子邮件地址。我需要提取此电子邮件地址并将其添加到每行的单独列中。这可能在MySQL中做到吗?从MySQL字段中提取电子邮件地址
0
A
回答
3
只能从使用纯粹的Mysql的正则表达式匹配中选择匹配的零件。 。你可以使用mysql扩展(如Return matching pattern陈述,或使用脚本语言(如PHP)
0
如果你可以安装lib_mysqludf_preg
MySQL的UDF,那么你可以做:
SET @regex = "/([a-z0-9!#\$%&'\*\+\/=\?\^_`\{\|\}~\-]+(?:\.[a-z0-9!#\$%&'\*\+\/=\?^_`{\|}~\-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+(?:[A-Z]{2}|aero|arpa|asia|biz|cat|com|coop|edu|gov|info|int|jobs|mil|mobi|museum|name|net|org|post|pro|tel|travel|xxx))/i";
SELECT
PREG_CAPTURE(@regex, description)
FROM
example
WHERE
PREG_CAPTURE(@regex, description) > '';
提取从description
领域第一个电子邮件地址。
我想不出其他解决方案,为REGEXP
操作人员只需返回1或0,和正则表达式匹配的位置不位置。
1
我SQL 确实有regular expressions,但正则表达式不是match email addresses的最佳方式。我强烈建议使用您的客户端语言。
0
您可以使用子指标来捕捉电子邮件地址...
第一子指数捕获到这些账户。
第二个substring_index捕获主机名。如果多个atso(@)存储在列中,则必须选择相同的电子邮件地址。
select concat(substring_index(substring_index(description,'@',1),' ',-1)
, substring_index(substring_index(description,
substring_index(description,'@',1),-1),
' ',1))
相关问题
- 1. 从Thunderbird中提取电子邮件地址电子邮件
- 2. 使用Oracle从字符串中提取电子邮件地址
- 3. 从字符串中提取电子邮件地址
- 4. 如何从Outlook的“收件人”字段中提取电子邮件地址?
- 5. 从HTML电子邮件中的嵌套表中提取电子邮件地址
- 6. 如何从电子邮件地址字符串中提取电子邮件地址
- 7. Gmail电子邮件地址提取
- 8. 提取电子邮件地址
- 9. 电子邮件地址提取
- 10. 从字段mysql中提取电子邮件ID
- 11. 使用VBA从Outlook电子邮件正文中提取电子邮件地址?
- 12. 从MySQL删除电子邮件地址
- 13. 从url中提取并添加电子邮件地址到表单字段
- 14. 从模式电子邮件地址提取名字和姓氏
- 15. 从eml文件中提取电子邮件地址
- 16. 从csv文件中提取电子邮件地址
- 17. 从给定的电子邮件地址获取电子邮件地址DirectoryEntry
- 18. 从电子邮件地址
- 19. 从.HTMLbody中的表中提取电子邮件地址
- 20. 从Samaccountname获取电子邮件地址
- 21. 从facebook获取电子邮件地址
- 22. 从yii2中的电子邮件地址提取号码部分
- 23. 如何从列表中提取电子邮件地址?
- 24. 从html源码中提取电子邮件地址
- 25. 从电子邮件地址中提取姓名和姓氏?
- 26. 从excel列中提取唯一的电子邮件地址
- 27. 如何从InboundMailHandler中仅提取电子邮件地址?
- 28. IMAP搜索从字段中的电子邮件地址
- 29. 从条纹结账中删除“电子邮件地址”字段
- 30. 从iPhone地址簿中获取电子邮件地址
当然是的。请详细解释一下到目前为止您尝试的内容以及您的数据库结构。 – lvarayut
基本上,我有一个“描述”列和另一个名为“电子邮件”的列,我需要在描述中查找电子邮件地址并添加到电子邮件列中。我想我会写一个快速的Python脚本来做到这一点,但有兴趣的话,如果有一种方法直接在数据库中做到这一点。 –