我的表中有一个长文本列“描述”,有时包含电子邮件地址。我需要提取此电子邮件地址并添加到每行的单独列中。这可以在 MySQL 中实现吗?
小智 5
您可以使用子字符串索引来捕获电子邮件地址...
第一个子字符串索引捕获帐户。
第二个 substring_index 捕获主机名。如果该列中存储了多个 atso (@),则必须选择相同的电子邮件地址。
select concat( substring_index(substring_index(description,'@',1),' ',-1)
, substring_index(substring_index( description,
substring_index(description,'@',1),-1),
' ',1))
Run Code Online (Sandbox Code Playgroud)
是的,你可以使用mysql的REGEXP(也许这是版本5和8的新功能,可能是在这个问题发布之后。)
SELECT *, REGEXP_SUBSTR(`description`, '([a-zA-Z0-9._%+\-]+)@([a-zA-Z0-9.-]+)\.([a-zA-Z]{2,4})') AS Emails FROM `mytable`;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5807 次 |
| 最近记录: |