从数据库中获取子字符串

时间:2015-12-29 11:10:27

标签: php mysql sql database mysqli

我有一个包含列的表,其中包含如下字符串。

sourabh@winworldsoft.com

monica@winworldsoft.com

sachin@winworldsoft.com

我需要从@到。(点)获取子串 我写了一些sql,但它有固定的长度,我需要动态查询来获取子字符串。

从注册中选择*,其中包含'%@%';

等电子邮件

子字符串查询 从注册中选择电子邮件,substr(电子邮件,4,10);

请为我写一个查询。

3 个答案:

答案 0 :(得分:1)

这应该这样做:

SELECT REVERSE(SUBSTRING(REVERSE(SUBSTRING_INDEX(email, '@', -1)), LOCATE('.', REVERSE(email))+1));

这将包括@和最后一个点之间的所有点(例如" someone@a.long.domain.name.com"将导致" a.long.domain.name&#34 ;)而不是嵌套的SUBSTRING_INDEX,它只返回@和第一个点之间的什么(例如" a")。

答案 1 :(得分:0)

substring_index()是最好的方法:

select substring_index(substring_index(email, '@', -1), '.', 1)

答案 2 :(得分:0)