我有邮箱地址,比如user1@gmail.comuser2@ymail.com user3@hotmail.com...等

推荐答案

假设gmail是一个单独的域名.雅虎.com,使用

select (SUBSTRING_INDEX(SUBSTR(email, INSTR(email, '@') + 1),'.',1))

内部SUBSTR@之后获得邮箱地址的正确部分,外部SUBSTRING_INDEX将在第一个周期切断结果.

否则,如果域预计包含多个单词,如mail.yahoo.com等,请使用:

select (SUBSTR(email, INSTR(email, '@') + 1, LENGTH(email) - (INSTR(email, '@') + 1) - LENGTH(SUBSTRING_INDEX(email,'.',-1)))) 

LENGTH(email) - (INSTR(email, '@') + 1) - LENGTH(SUBSTRING_INDEX(email,'.',-1))将得到域的长度减go TLD (.com, .biz etc. part),方法是使用带负数的SUBSTRING_INDEX,从右到左计算.

Mysql相关问答推荐

查找关联数据库表的超集

SQL - Select 复合主键,条件为其中一个主键

MySQL添加表会将&@@&qot;追加到表名

MySQL逻辑全部

Python - 执行原始 SQL 时获取更新查询 (Mysql) 的结果

PythonAnywhere中SSH到MySQL数据库无限期挂起,SSH正确,workbench可以完美连接

Mysql根据文本语言或行数将列拆分为多列

根据 JOIN 结果计算列中的值?

排序子查询结果并返回每个 ID 的第一行

基于关系的每个实体有一个真值和多个假值

需要按总金额检索前 3 个供应商,每个类别 - 子类别

mysql insert into select join - 通过连接表将值从一列复制到另一表

按 SQL 删除分组前的重复项

Laravel 查询构建器 where() 用于何时产品必须有多个标签(使用 product_tags 数据透视表多对多)

从 SQL 中的左连接和内连接中减go 计数

如何在 SQL 中的一行中查找最小值和最大值?

最好的 MySQL 性能调优工具?

安装 mysql-python (Windows)

在 MySQL 中检测 utf8 损坏的字符

使用 MySql,我可以对列进行排序但最后有 0 吗?