0

我有一个有两列的表 - id,电子邮件

我可以运行什么查询来仅显示具有 %40 的单个电子邮件?

例如我的桌子是

id  email
-------------
1   stevemartin140%40gmail.com

2   stevemartin141%40gmail.com

3   stevemartin140@gmail.com

4   stevemartin141@gmail.com

5   stevemartin148%40gmail.com

6   andymartin%40ymail.com

所以结果将是:

id  email
-------------
5   stevemartin148%40gmail.com

6   andymartin%40ymail.com

我想找出并用@替换这些电子邮件

所以我的最终输出将是:

id  email
-------------
1   stevemartin140%40gmail.com

2   stevemartin141%40gmail.com

3   stevemartin140@gmail.com

4   stevemartin141@gmail.com

5   stevemartin148@gmail.com

6   andymartin@ymail.com

提前致谢

4

3 回答 3

3

If you want to replace them, then:

UPDATE t SET email=REPLACE(email, '%40', '@')

-in MySQL.

于 2013-09-17T12:38:24.587 回答
0

也许不是必须的表演,但要找到重复的......

SELECT * FROM table GROUP BY REPLACE(email, '%40', '@') HAVING COUNT(*) < 2 AND email LIKE '%\%40%';

兼容 MySQL

http://www.sqlfiddle.com/#!2/6808c/3/0

于 2013-09-17T12:52:11.263 回答
0

您应该like '%\%40%'在 where 条件中使用来转义通配符,如下所示:

select * from t1 where email like '%\%40%';

这是SqlFiddle

于 2013-09-17T12:41:44.710 回答