mysql - 从数据库中获取子字符串

标签 mysql sql

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

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/

相关文章:

php - 使用 PHP 和 MySQL 按字母顺序检索阿拉伯语单词

java - 找不到适用于 jdbc :oracle:thin:@localhost:1521:xe error 的合适驱动程序

java - servlet 的数据库连接问题 - Java webapp

java - JPA 正在为我的 INT 字段创建 VARCHAR 列

php - 使用 MySQL 执行复杂的多表搜索查询

php - 如果 DELETE 查询有效,检查 mysql_query 结果?

php - 如何在我的用户存储在 SQL 数据库中的网站上记录每个用户的时间 session ?

sql - PostgreSQL : Converting comma separated integer values and intervals to sequenced numbers

sql - SQL 中的分层分配与短路分配?

sql - Clojure 和 HugSQL;如何提供SQL关键字?