我正在尝试查找具有以下情况的记录。
ID | name | email
1 Robert robert@gmail.com
2 William bill@gmail.com
3 Michael michael@gmail.com
4 Micahel mike@gmail.com
根据上表,我想找到“email”字段中包含“name”的记录,这里记录1和3应该是输出而不是2和4。有什么办法可以做这个比较?
我尝试阅读有关正则表达式的内容,但找不到任何内容。如果它是相同值的比较,那将是直截了当的,但我对此一无所知。我想到了 LIKE
但看起来这不能有字段名称。
最佳答案
确切的语法将取决于您希望如何定义关系。
您是否在电子邮件地址中的任何位置查找姓名? (这会很慢)
select id,name,email
from your_table
where email like concat('%',name,'%')
就在电子邮件地址的开头?
select id,name,email
from your_table
where email like concat(name,'%')
就在@符号之前?
select id,name,email
from your_table
where email like concat(name,'@%')
关于mysql select query - 将一个字段与另一个字段匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5093630/