我的表中有一個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腳本來做到這一點,但有興趣的話,如果有一種方法直接在數據庫中做到這一點。 –