赞
踩
练习sql语句,所有题目来自于力扣(https://leetcode.cn/problemset/database/)的免费数据库练习题。
1517.查找拥有有效邮箱的用户
表:Users
列名 | 类型 |
---|---|
user_id | int |
name | varchar |
varchar |
user_id 是该表的主键(具有唯一值的列)。该表包含了网站已注册用户的信息。有一些电子邮件是无效的。
编写一个解决方案,以查找具有有效电子邮件的用户。
一个有效的电子邮件具有前缀名称和域,其中:
以任何顺序返回结果表。
首先梳理表内容,题干给了一张用户表,记录了用户id,姓名,邮箱,其次分析需求,需要找到有效的电子邮箱,其中有效的电子邮箱前缀是一个字符串,我的第一个想法是用like将其连接起来,但实际上运行不出来结果,看了题解发现我们需要用到正则表达式,也就是用regexp或者是rlike来匹配正则表达式。
这道题整体邮箱就三个部分:
1.以字母开头 [^a-zA-z]
2.字母或是数字或是".“,”_“,”-"作为中间的字符串,因为这三个符号在SQL里面都有特殊用途,所以需要加上\对其进行转义,显示字符原本的样子。[a-zA-z0-9\\.\\-\\_]*
3.以@leetcode结尾。@leetcode\\.com$
select user_id,name,mail
from Users
where mail rlike "^[a-zA-Z][a-zA-Z0-9\\_\\-\\.]*@leetcode\\.com$"
能运行就行。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。