我想比较数据库中有两列。一个是电子邮件地址,另一个是用户名。
如果用户名的第一部分与电子邮件地址的第一部分(@ 符号之前的内容(匹配,我希望返回结果。
示例数据:
用户名电子邮件地址
巴兹丘尔泽9802 badzzycshulzey@gmail.com
特罗格莱德1919 trogleddg@gmail.com
尝试了各种查询,但我似乎无法得到这个......谢谢!
你真的不需要正则表达式,字符串函数可以做到这一点:
select *
from mytable
where username like concat(substr(emailaddress, 1, locate('@', emailaddress) - 1), '%')
locate('@', emailaddress)
为您提供了 arobas 在电子邮件地址中的位置,substr(emailaddress, 1, locate(...) - 1)
提取了在此之前的所有内容。然后,我们可以使用右侧带有通配符的like
检查username
是否以电子邮件地址的该部分开头。