我有一个表,其中有一列包含如下所示的字符串。
sourabh@winworldsoft.com
monica@winworldsoft.com
sachin@winworldsoft.com
我需要获取从@到.(点)的子字符串 我写了一些sql,但它有固定长度,我需要动态查询来获取子字符串。
选择*从注册中,其中电子邮件如“%@%”;
子字符串查询 从注册中选择 email, substr(email,4,10);
请帮我写一个查询。
最佳答案
这应该可以做到:
SELECT REVERSE(SUBSTRING(REVERSE(SUBSTRING_INDEX(email, '@', -1)), LOCATE('.', REVERSE(email))+1));
这将包括@和最后一个之间的所有点(例如“someone@a.long.domain.name.com”将导致“a.long.domain.name”),而不是嵌套的SUBSTRING_INDEX,后者只会返回 @ 和第一个点之间的内容(例如“a”)。
关于mysql - 从数据库中获取子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34509760/