选择填充数据的列中的所有唯一电子邮件

时间:2015-09-30 16:36:39

标签: mysql select substring distinct

我的列字段中填充了用户请求中的各种数据(每行一个请求)。

我只需要这些用户的电子邮件地址'请求,它们都按照以下格式放在此列中:

[...data...] Email: mysql@se.com Phone: [...remaining data...]

我发现了这个问题:

select part of table column data in mysql

为部分问题提供了解决方案:

SELECT SUBSTR(message,INSTR(message,'Email: ')+7) FROM user_req_log

但是,这将返回所有不需要的剩余数据。

什么是将结果限制在我需要的字符串(电子邮件地址)的最有效方法,同时忽略重复项?

1 个答案:

答案 0 :(得分:0)

根据question's solution,您可以执行以下操作:

SELECT DISTINCT SUBSTR(message,
                       @ini_pos:=INSTR(message,'Email: ')+7,
                       INSTR(message,' Phone:')-@ini_pos)
FROM `user_req_log`

它可能不是最有效的方式,但它非常相似: