手机号、邮箱、用户名均可登录系统的实现方式
【摘要】 大家好,我是雄雄,欢迎关注微信公众号:雄雄的小课堂 前言现在是2022年4月28日13:41:29!需求:用户可以通过手机号、邮箱来注册我们的系统,用户完成之后,可以去完善自己的个人信息,比如修改手机号,邮箱以及用户名。下次上来,用户可以使用手机号、邮箱以及用户名三种中的任何一种方式登录系统。 实现方法其实这个实现起来挺简单的,就是当时绕了很大的坑,给绕进去了。。。。像这样的需求,直接可以在...
大家好,我是雄雄,欢迎关注微信公众号:雄雄的小课堂
前言
现在是2022年4月28日13:41:29!
需求:用户可以通过手机号、邮箱来注册我们的系统,用户完成之后,可以去完善自己的个人信息,比如修改手机号,邮箱以及用户名。下次上来,用户可以使用手机号、邮箱以及用户名三种中的任何一种方式登录系统。
实现方法
其实这个实现起来挺简单的,就是当时绕了很大的坑,给绕进去了。。。。
像这样的需求,直接可以在后台的sql
中实现,但当时写sql的时候写了好几种形式:
第一种:
SELECT * FROM blade_user
WHERE (email='muxiongxiong' AND PASSWORD = 'muxiongxiong')
OR (NAME = 'muxiongxiong' AND PASSWORD = 'muxiongxiong')
OR (phone = 'muxiongxiong' AND PASSWORD = 'muxiongxiong')
OR (account = 'muxiongxiong' AND PASSWORD = 'muxiongxiong')
第二种:
SELECT * FROM blade_user
WHERE email || NAME || phone || account LIKE '%muxiongxiong%' AND PASSWORD = 'muxiongxiong'
第三种:
SELECT * FROM blade_user
WHERE
(email= 'muxiongxiong' OR NAME= 'muxiongxiong' OR phone= 'muxiongxiong' or account ='muxiongxiong')
AND PASSWORD = 'muxiongxiong'
第一种和第三种基本上一样,第二种写法比较新奇,思路是这样的,将这几个字段,用户名,邮箱,电话,账号都拼接在一起,然后通过模糊查询的like去匹配,然后和密码比对进行查询。这几种方式的效率基本都差不多,用哪种都可以。前提是得限制用户的手机号,邮箱,账号以及用户名都是唯一的,极端情况下的话,就是A的账号和B的手机号一样,或者其他字段一样,可能会查询出来多条数据。
刚开始绕弯是因为我把手机号、邮箱等这几个字段理解成了不一样的了,于是结果总是有好多个,还以为自己的sql
写错了呢,后来朋友看出来了问题所在,一语指出…
结果总是有好多个,还以为自己的sql
写错了呢,后来朋友看出来了问题所在,一语指出…
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)