0

我需要一些有关 mysql 子串和修剪的帮助。我在一列中有一个数据,看起来像

uvw.xyz.com!johndoe@abc.efg.com

我正在尝试获取之前的所有内容@并触发用户名和第一个域和远程!和之前的域之后@,所以结果将是johndoe@uvw.xyz.com

我有类似的东西..

select substr(m1.username, 10, 50) 
from (select username from my_table where username like '%!%')) as results;

但这正在查看固定字段,我需要从@角色中删除!然后翻转触发器。任何帮助都会很棒。

谢谢

4

1 回答 1

1

这应该有效:

SET @var = 'uvw.xyz.com!johndoe@abc.efg.com';
SELECT
    SUBSTRING_INDEX(SUBSTRING_INDEX(@var, '@', 1), '!', -1) AS local,
    SUBSTRING_INDEX(SUBSTRING_INDEX(@var, '@', 1), '!', 1) AS domain

结果

| 本地 | 域名 |
-------------------------
| 约翰多 | uvw.xyz.com |

要获得连接值,您可以使用:

SELECT
    CONCAT(SUBSTRING_INDEX(SUBSTRING_INDEX(@var, '@', 1), '!', -1), '@',
    SUBSTRING_INDEX(SUBSTRING_INDEX(@var, '@', 1), '!', 1)) AS email

结果

| 电子邮件 |
----------------------
| johndoe@uvw.xyz.com |

你会@varm1.username

于 2013-01-11T15:31:06.420 回答