文章目录
- 力扣高频SQL 50题(基础版)第四十一题
- 1517.查找拥有有效邮箱的用户
- 题目说明
- 实现过程
- 准备数据
- 实现方式
- 结果截图
- 总结
力扣高频SQL 50题(基础版)第四十一题
1517.查找拥有有效邮箱的用户
题目说明
表: Users
±--------------±--------+
| Column Name | Type |
±--------------±--------+
| user_id | int |
| name | varchar |
| mail | varchar |
±--------------±--------+
user_id 是该表的主键(具有唯一值的列)。
该表包含了网站已注册用户的信息。有一些电子邮件是无效的。
编写一个解决方案,以查找具有有效电子邮件的用户。
一个有效的电子邮件具有前缀名称和域,其中:
- 前缀 名称是一个字符串,可以包含字母(大写或小写),数字,下划线
'_'
,点'.'
和/或破折号'-'
。前缀名称 必须 以字母开头。 - 域 为
'``@leetcode.com``'
。
以任何顺序返回结果表。
实现过程
准备数据
Create table If Not Exists Users (user_id int, name varchar(30), mail varchar(50))
Truncate table Users
insert into Users (user_id, name, mail) values ('1', 'Winston', 'winston@leetcode.com')
insert into Users (user_id, name, mail) values ('2', 'Jonathan', 'jonathanisgreat')
insert into Users (user_id, name, mail) values ('3', 'Annabelle', 'bella-@leetcode.com')
insert into Users (user_id, name, mail) values ('4', 'Sally', 'sally.come@leetcode.com')
insert into Users (user_id, name, mail) values ('5', 'Marwan', 'quarz#2020@leetcode.com')
insert into Users (user_id, name, mail) values ('6', 'David', 'david69@gmail.com')
insert into Users (user_id, name, mail) values ('7', 'Shapiro', '.shapo@leetcode.com')
实现方式
select user_id,name,mail from Users
where mail regexp '^[a-zA-Z][a-zA-Z0-9\\_\\.\\-]*@leetcode\\.com$'
结果截图
总结
regexp
正则表达式
^[a-zA-Z]
表示以字母开头
[a-zA-Z0-9\\_\\.\\-]
表示中间的字符传只能以这个范围内的字符构成
*
表示匹配多个字符
@leetcode\\.com$
表示以该字符串结尾
\\
表示转义字符 转标点符号